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

Mitch Wheat
sumber
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.

Insinyur Terbalik
sumber
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