Ya, itu mungkin.
Untuk mengubah skema objek database, Anda perlu menjalankan skrip SQL berikut:
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.ObjectName
Di mana ObjectName bisa menjadi nama tabel, tampilan, atau prosedur tersimpan. Masalahnya tampaknya mendapatkan daftar semua objek database dengan nama shcema yang diberikan. Untungnya, ada tabel sistem bernama sys.Objects yang menyimpan semua objek database. Kueri berikut akan menghasilkan semua skrip SQL yang diperlukan untuk menyelesaikan tugas ini:
SELECT 'ALTER SCHEMA NewSchemaName TRANSFER [' + SysSchemas.Name + '].[' + DbObjects.Name + '];'
FROM sys.Objects DbObjects
INNER JOIN sys.Schemas SysSchemas ON DbObjects.schema_id = SysSchemas.schema_id
WHERE SysSchemas.Name = 'OldSchemaName'
AND (DbObjects.Type IN ('U', 'P', 'V'))
Dimana tipe 'U' menunjukkan tabel pengguna, 'V' menunjukkan tampilan dan 'P' menunjukkan prosedur tersimpan.
Menjalankan skrip di atas akan menghasilkan perintah SQL yang diperlukan untuk mentransfer objek dari satu skema ke skema lainnya. Sesuatu seperti ini:
Pra -pre>ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.CONTENT_KBArticle;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.Proc_Analytics_Statistics_Delete;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.Proc_CMS_QueryProvider_Select;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.COM_ShoppingCartSKU;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.CMS_WebPart;
ALTER SCHEMA NewSchemaName TRANSFER OldSchemaName.Polls_PollAnswer;
Sekarang Anda dapat menjalankan semua kueri yang dihasilkan ini untuk menyelesaikan operasi transfer.