2009-08-10 7 views
23

SQL(MS SQL Server 2005 variant)を使用してテーブルカラムの名前を変更する場合のベストプラクティスは何ですか?これは、列に保存する必要があるデータがあることを前提としています。MS SQL Server 2005のカラム名を変更

答えて

47

列の名前を変更するには、ストアドプロシージャを使用する必要があります。次の例では、データに影響を与えることなく、列の名前を 'oldColumnName'から 'newColumnName'に変更します。

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

明らかに古い名前を使用するコード/ストアドprocs/SQLを手動で更新する必要があります。

0

私は今日、同じ問題を抱えていました。その解決策は、データベース上のすべてのプロセスを強制終了し、プロセスがトランザクションをロックしたためです。私はsp_renameプロシージャを実行しましたが、問題は解決されませんでした。だから、私はデータベース内のプロセスをkillし、procが動作します。

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') 
関連する問題