Saya mengimpor banyak tabel dari SQL Server 2000 ke database 2008 saya. Semua tabel impor diawali dengan nama pengguna saya misalnya: erpadmin.tablename
.
Dalam properti tabel ia mencantumkan 'erpadmin' sebagai skema db. Ketika saya menulis kueri, saya sekarang harus memasukkan 'erpadmin.' di depan semua nama tabel yang membingungkan.
Hasil saat ini:
select *
from erpadmin.tablename
Hasil yang diinginkan:
select *
from tablename
sumber
select ... from table5 ;
) dan mendapatkan hasil yang berbeda. Ini buruk untuk caching paket dan juga buruk untuk pemecahan masalah (isyarat dukungan orang, "permintaan itu berjalan dengan baik di sini"). Selain itu, schemabinding, yang diperlukan untuk pengindeksan fungsi dan tampilan, memerlukan dua nama bagian. TLDR: berhenti malas - gunakan dua nama bagian.Sebagai tambahan jawaban @AdamWenger. Untuk membuat skrip untuk mentransfer ke skema lain, Anda dapat menggunakan skrip berikut
sumber
Masalah Anda kemungkinan karena cara migrasi dilakukan. Barang-barang tidak boleh dilampirkan pada pengguna Anda, kecuali jika Anda dianggap sebagai pemiliknya.
Skema ada untuk membantu Anda memisahkan tabel dengan apa pun yang masuk akal. Misalkan Anda memiliki satu tabel sumber daya untuk departemen SDM dan menginginkan tabel sumber daya yang terpisah untuk departemen produksi, sekaligus mempertahankan keduanya pada database yang sama. Dalam hal ini Anda dapat memiliki dua tabel bernama sumber daya, satu di skema produksi dan satu lagi di skema SDM. Itu sebabnya shcemas harus ditentukan, kecuali Anda membawa barang ke skema default.
Jika Anda tidak mengulangi migrasi untuk alasan lain, maka transfer Adam Wenger harus menjadi pilihan yang bijaksana.
sumber
Mulai perintah Anda dengan
USE [tablename]
kueri Anda tidak memiliki database terkait untuk referensi dan database yang Anda lihat bukan default untuk pengguna yang login Di bagian atas jendela permintaan itu mungkin mengatakan "master"sumber
[database_name]
benar?