Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara mengubah skema semua tabel, tampilan, dan prosedur tersimpan di MSSQL

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengirim email dari SQL Server?

  2. Perbedaan antara membaca berkomitmen dan membaca berulang

  3. Bagaimana menggabungkan tanggal dari satu bidang dengan waktu dari bidang lain - MS SQL Server

  4. Bagaimana cara mengotomatiskan pembuatan skrip menggunakan SMO di SQL Server?

  5. Permintaan DateTime hanya pada tahun di SQL Server