Was ist die beste Vorgehensweise beim Umbenennen einer Tabellenspalte mit SQL (MS SQL Server 2005-Variante)? Dies setzt voraus, dass Daten in der Spalte vorhanden sind, die beibehalten werden müssen.Umbenennen einer Spalte in MS SQL Server 2005
23
A
Antwort
47
Sie müssen eine gespeicherte Prozedur verwenden, um eine Spalte umzubenennen. Im Folgenden wird Ihre Spalte von "oldColumnName" in "newColumnName" umbenannt, ohne dass Daten davon betroffen sind.
Offensichtlich müssen Sie jeden Code/gespeicherte Prozeduren/SQL aktualisieren, die den alten Namen manuell verwendet.
0
Ich hatte das gleiche Problem heute, und die Lösung war alle Prozesse auf der Datenbank zu töten, weil die Prozesse die Transaktionen gesperrt war. Ich wurde die Prozedur sp_rename ausgeführt, aber das Problem wurde nicht gelöst. Also habe ich die Prozesse in der Datenbank beendet und der Proc funktioniert.
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')