SSMS
 sql >> Teknologi Basis Data >  >> Database Tools >> SSMS

Menulis kueri untuk menghasilkan beberapa skrip untuk mengganti nama beberapa kolom di seluruh database

Meskipun mengganti nama kolom tabel tidak sulit menggunakan sp_rename , mengubah tampilan referensi dan prosedur tersimpan bukanlah hal yang sepele tanpa bantuan alat.

T-SQL di bawah ini akan menghasilkan skrip untuk mengganti nama semua kolom yang dimulai dengan huruf kecil. Namun, ini rapuh karena penggantian nama akan gagal ketika ada ketergantungan yang dipaksakan (misalnya objek terikat skema) dan tidak akan menangani tampilan, procs. et. al.

SELECT 
      N'EXEC sp_rename ''' 
    + QUOTENAME(s.name) + N'.' + QUOTENAME(t.name) + N'.' + QUOTENAME(c.name) 
    + ''', ''' + UPPER(LEFT(c.name, 1)) + SUBSTRING(c.name,2,127) + ''', ''COLUMN'';'
FROM sys.schemas AS s
JOIN sys.tables AS t ON t.schema_id = s.schema_id
JOIN sys.columns AS c ON c.object_id = t.object_id
WHERE 
    LEFT(c.name, 1) COLLATE Latin1_General_CS_AS <> UPPER(LEFT(c.name, 1)) COLLATE Latin1_General_CS_AS
    AND t.is_ms_shipped = 0;

Saya sarankan Anda menggunakan SSDT , yang disertakan dengan Visual Studio 2019 (termasuk Edisi Komunitas gratis). Buat Proyek Database SQL Server baru, impor database yang ada, ganti nama kolom menggunakan opsi Refactor-->Ganti nama, lalu publikasikan proyek terhadap database target. Publikasikan menyediakan opsi untuk menerapkan perubahan segera dan/atau hanya membuat skrip. Script akan menyertakan DDL untuk penggantian nama kolom seperti halnya mengubah nama kolom di semua objek referensi.

Jika kolom beralias dengan nama yang tidak diinginkan dalam tampilan, procs, dll., alias tersebut juga perlu diubah.




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Bagaimana cara menghapus daftar database yang terhapus secara tidak sengaja dari daftar seperti pohon Sql Server Management Studio?

  2. Lakukan bergabung pada kueri yang digabungkan

  3. Bagaimana Anda men-debug atau menelusuri kode di SQL Server Management Studio 18?

  4. Pembatas khusus di SQL Server yang diatur dalam opsi Hasil ke Teks tidak berfungsi

  5. Bagaimana cara mengatur BEGIN_TRANSACTION secara otomatis di SSMS (SQL Server Management Studio)?