关于使用SQL重命名表列(MS SQL Server 2005变体)的最佳做法是什么?这假设列中有数据必须保留。重命名MS SQL Server 2005中的列
23
A
回答
47
您必须使用存储的proc来重命名列。以下内容会将您的专栏从'oldColumnName'重新命名为'newColumnName',而不影响任何数据。
EXEC sp_rename 'tableName.[oldColumnName]', 'newColumnName', 'COLUMN'
很明显,您必须手动更新任何使用旧名称的代码/存储过程/ SQL。
0
我今天有同样的问题,解决方案是杀死数据库上的所有进程,导致进程被锁定的交易。我执行了sp_rename过程,但问题没有解决。所以我杀了数据库和过程中的进程。
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')
相关问题
- 1. 重命名的SQL Server索引在MS SQL Server
- 2. MS SQL Server 2005的sp_stored_procedures
- 3. 为MS SQL Server 2005的
- 4. 重命名SQL Server中的列
- 5. 问题在SQL Server中重命名列
- 6. 带命名空间的SQL Server 2005 XML
- 7. MS SQL Server 2005中的存储过程
- 8. 如何在表上重命名PK,MS SQL 2005
- 9. 在MS SQL Server 2005中插入IGNORE?
- 10. MS SQL Server 2005中 - 将类似数据
- 11. 从MS SQL Server 2005中选择数据
- 12. 在MS SQL Server 2005中不支持OVER?
- 13. SQL查询,通配符,MS SQL SERVER 2005
- 14. 重命名SQL中的列
- 15. MS SQL Server 2005上的索引varchar
- 16. 是否可以重命名SQL Server 2005实例
- 17. SQL Server 2005中
- 18. SQL Server 2005中的分区
- 19. 重命名sql server 2008中的列名称
- 20. 当在Sql Server中重命名列时的流言表名称
- 21. 如何重命名SQL Server中的表?
- 22. 重命名SQL Server中的约束?
- 23. SQL Server 2005 - 列到行
- 24. SQL Server 2008到SQL Server 2005
- 25. ms sql server 2005数据库容量
- 26. 想要连接PHP5到MS SQL SERVER 2005
- 27. MS SQL Server 2005 GROUP BY和SUM
- 28. 如何学习MS SQL Server 2005?
- 29. 在MS SQL服务器中重命名表名。需要更改
- 30. SQL Server 2005中