sp_rename name index column change sql sql-server ddl renaming

name - Renombrando una columna en MS SQL Server 2005



rename sql server (2)

¿Cuál es la mejor práctica cuando se trata de cambiar el nombre de una columna de tabla utilizando SQL (variante de MS SQL Server 2005)? Esto supone que hay datos en la columna que deben conservarse.


Tienes que usar un proc almacenado para cambiar el nombre de una columna. Lo siguiente cambiará el nombre de su columna de ''oldColumnName'' a ''newColumnName'' sin afectar ningún dato.

EXEC sp_rename ''tableName.[oldColumnName]'', ''newColumnName'', ''COLUMN''

Obviamente, tendrá que actualizar cualquier código / proceso almacenado / SQL que use el nombre antiguo manualmente.


Tuve el mismo problema hoy, y la solución fue eliminar todos los procesos en la base de datos, ya que los procesos estaban bloqueados en las transacciones. Se ejecutó el procedimiento sp_rename, pero el problema no se resolvió. Así que estaba matando los procesos en la base de datos y el proc funciona.

USE MASTER GO --Kill all the connections opened in database. DECLARE @dbname sysname SET @dbname = ''database_name'' DECLARE @spid int SELECT @spid = min(spid) from master.dbo.sysprocesses where dbid = db_id(@dbname) WHILE @spid IS NOT NULL BEGIN EXECUTE (''KILL '' + @spid) SELECT @spid = min(spid) from master.dbo.sysprocesses where dbid = db_id(@dbname) AND spid > @spid END SELECT request_session_id FROM sys.dm_tran_locks WHERE resource_database_id = DB_ID(''database_name'')