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

Mengganti nama kolom tanpa merusak skrip dan prosedur tersimpan

Nah, ada banyak alat pihak ke-3 yang menjanjikan jenis "penggantian nama yang aman", beberapa gratis dan beberapa tidak:

  • ApexSQL memiliki alat gratis untuk itu, sebagai MWillemse tulis dalam jawabannya,
  • RedGate memiliki alat komersial bernama SQLPrompt yang juga memiliki fitur penggantian nama yang aman, Namun jauh dari kata gratis.
  • Microsoft memiliki add-in studio visual bernama Alat Data SQL Server (atau SSDT dalam versi pendek), sebagai Dan Guzman tulis dalam komentarnya.

Saya harus mengatakan bahwa saya belum pernah mencoba alat khusus ini untuk tugas khusus itu, tetapi saya memiliki beberapa pengalaman dengan SSDT dan beberapa produk RedGate dan saya menganggapnya sebagai alat yang sangat bagus. Saya tidak tahu apa-apa tentang ApexSQL.

Pilihan lain adalah mencoba dan menulis skrip sql sendiri, Namun ada beberapa hal yang perlu dipertimbangkan sebelum Anda mulai:

  • Dapatkah tabel Anda diakses langsung dari luar sql server? Maksud saya, mungkinkah beberapa perangkat lunak mengeksekusi pernyataan sql langsung di tabel itu? Jika demikian, Anda mungkin merusaknya saat Anda mengganti nama kolom itu, dan tidak ada alat sql yang akan membantu dalam situasi ini.
  • Apakah keterampilan skrip sql Anda benar-benar bagus? Saya menganggap diri saya cukup berpengalaman dengan sql server, tetapi saya pikir menulis skrip seperti itu di luar keahlian saya. Bukannya tidak mungkin bagi saya, tapi mungkin akan memakan banyak waktu dan tenaga untuk mendapatkan sesuatu yang bisa saya dapatkan secara gratis.

Jika Anda memutuskan untuk menulisnya sendiri, ada beberapa artikel yang mungkin dapat membantu Anda dalam tugas tersebut:

Pertama, dokumentasi resmi Microsoft sys.sql_expression_dependencies .
Kedua, artikel berjudul Cara Berbeda untuk Menemukan Ketergantungan Objek SQL Server yang ditulis oleh DBA berpengalaman 13 tahun, dan yang tak kalah pentingnya, pertanyaan terkait di situs web Administrator Basis Data StackExchange.

Anda dapat, tentu saja, menggunakan cara aman yang disarankan Gordon Linoff dalam komentarnya, atau menggunakan sinonim seperti data tujuan yang disarankan dalam jawabannya, tetapi kemudian Anda harus secara manual memodifikasi semua dependensi kolom secara manual, dan dari apa yang saya mengerti , itulah yang ingin Anda hindari.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mengonversi versi baris server sql menjadi panjang atau ulong?

  2. Bagaimana ISNUMERIC() Bekerja di SQL Server

  3. SQL vs Parameter yang dibuat secara dinamis di SQL Server

  4. Kinerja SQL Server TOP IO Query -1

  5. String Koneksi DB di Web.config untuk menggunakan database .mdf terlampir tidak akan berfungsi