Un Tip da usare quando scriviamo codice per modificare un database da eseguire da programma.
Usualmente lo script per rinominare una colonna in SQL Server è composto da una Alter Table abbastanza complessa, mentre se usiamo il Designer di SQL Management Studio, possiamo rinominare manualmente una colonna senza problemi.
Il designer ha anche un bottoncino che è attivo solo prima che noi premiamo il tasto Salva dopo aver fatto le modifiche alla nostra tabella. Tale bottoncino si chiama Generate Change Script ed è il primo della seconda toolbar quando siamo dentro al designer.
Premendo questo bottoncino, ci viene generato uno script SQL con tutte le modifiche che abbiamo effettuato sul database. E’ ovvio che è indispensabile premerlo prima di salvare perché il tasto Salva esegue lo script e perde le modifiche effettuate.
Detto questo, per caso stamattina l’ho usato dopo aver rinominato una colonna ed ho ottenuto questo:
USE [DbName] BEGIN TRANSACTION SET QUOTED_IDENTIFIER ON SET ARITHABORT ON SET NUMERIC_ROUNDABORT OFF SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON COMMIT BEGIN TRANSACTION GO EXECUTE sp_rename N'dbo.Mytable.MyField', N'Tmp_MyNewField_1', 'COLUMN' GO EXECUTE sp_rename N'dbo.MyTable.Tmp_MyNewField_1', N'MyNewField', 'COLUMN' GO COMMIT
Scoprendo quindi che esiste una stored procedure di sistema che si occupa di rinominare la colonna, vedo da quanto possiamo notare che fa 2 passaggi, probabilmente per sicurezza, è una cosa comoda da usare, pertanto la annoto qui come sempre per non dimenticarmene.
Ricordo ovviamente a chi usa questo tipo di script che rinominando una colonna vanno verificate tutte le stored procedure e le viste che la utilizzassero per evitare errori inoltre vanno verificati gli script manuali sparsi per i nostri programmi.