2009-08-10 9 views

Répondre

47

Vous devez utiliser un proc stocké pour renommer une colonne. Ce qui suit va renommer votre colonne de 'oldColumnName' en 'newColumnName' sans affecter les données.

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

De toute évidence, vous devrez mettre à jour tout code/process enregistré/SQL qui utilise l'ancien nom manuellement.

0

J'ai eu le même problème aujourd'hui, et la solution était de tuer tous les processus sur la base de données, car les processus étaient verrouillés les transactions. J'ai été exécuté la procédure sp_rename, mais le problème n'a pas été résolu. Donc, j'étais tuer les processus dans la base de données et le processus fonctionne.

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') 
Questions connexes