Press "Enter" to skip to content

Rinominare una colonna in una tabella in un DB SQL Server 2005

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.