Bagaimana cara memindahkan tabel ke skema di T-SQL


Jawaban:


464
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

Jika Anda ingin memindahkan semua tabel ke skema baru, Anda dapat menggunakan sp_MSforeachtableprosedur tersimpan yang tidak terdokumentasi (dan akan ditinggalkan pada beberapa titik, tetapi tidak mungkin!) :

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

Ref .: ALTER SCHEMA

SQL 2008: Bagaimana cara mengubah skema db ke dbo


6
2018 dan masih menyelamatkan hidupku. Terima kasih banyak, Mitch.
ClownCoder

19

Jawaban singkat:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name

Saya dapat mengkonfirmasi bahwa data dalam tabel tetap utuh, yang mungkin cukup penting :)

Jawaban panjang sesuai dokumen MSDN ,

ALTER SCHEMA schema_name 
   TRANSFER [ Object | Type | XML Schema Collection ] securable_name [;]

Jika ini adalah tabel (atau apa pun selain koleksi Tipe atau XML Schema), Anda dapat mengabaikan kata Object karena itu adalah default.


1
Mengapa downvote untuk jawaban saya yang benar? Silakan periksa jawaban saya terhadap jawaban yang diterima, yang sama, dan sudah ada 257 upvote (termasuk milik saya).
Reversed Engineer

2
Dapatkan upvote untuk mengonfirmasi data tetap utuh, yang baru saja menyelamatkan tekanan darah saya ... :)

6
@DaveBoltnman: Anda telah memasukkan jawaban 6 tahun setelah jawaban yang diterima dan dengan komentar Anda sendiri di atas "yang sama".
Mitch Wheat

4
mengapa data tidak dalam tabel tetap utuh hanya karena tabel dipindahkan ke wadah skema yang berbeda?
Mitch Wheat

2
perubahan nama yang bagus @DaveBoltman. Menjawab pertanyaan lama itu bagus, ketika mereka menambahkan sesuatu ke jawaban yang ada.
Mitch Wheat
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.