2009-08-10 40 views

Trả lời

47

Bạn phải sử dụng một proc được lưu trữ để đổi tên cột. Sau đây sẽ đổi tên cột của bạn từ 'oldColumnName' thành 'newColumnName' mà không ảnh hưởng đến bất kỳ dữ liệu nào.

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

Rõ ràng bạn sẽ phải cập nhật mọi mã/procs lưu trữ/SQL sử dụng tên cũ theo cách thủ công.

0

Tôi đã có cùng một vấn đề ngày hôm nay và giải pháp đã tiêu diệt tất cả các quy trình trên cơ sở dữ liệu, khiến các quy trình bị khóa giao dịch. Tôi đã được thực hiện thủ tục sp_rename, nhưng vấn đề không được giải quyết. Vì vậy, tôi đã giết các quy trình trong cơ sở dữ liệu và các công trình 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') 
Các vấn đề liên quan