在具有1000+条记录的SQL Server表中更改列名

时间:2012-10-24 10:53:09

标签: sql-server-2008

我有一个列,想要更改其名称,但没有其他任何使用查询,这是最好的方法。

4 个答案:

答案 0 :(得分:4)

您可以使用

sp_RENAME 'TableName.[Your_Old_ColumnName]' , '[Your_New_ColumnName]', 'COLUMN'

注意:重命名列名将破坏您的查询,存储过程等。

答案 1 :(得分:4)

您可以使用系统存储过程sp_rename

EXEC sp_rename 'dbo.Test.OldName', 'NewName', 'COLUMN';  

以下是包含1000条记录的完整示例:

create table dbo.Test(ID int IDENTITY(1,1), OldName varchar(10));

declare @i int;
SET @i = 0;
WHILE @i < 1000
BEGIN
   SET @i = @i + 1;
   INSERT INTO dbo.Test Values(CAST(@i AS varchar(4))+ '. record');
END;

SELECT * FROM dbo.Test;

EXEC sp_rename 'dbo.Test.OldName', 'NewName', 'COLUMN';  

SELECT * FROM dbo.Test;

DROP TABLE dbo.Test;

答案 2 :(得分:2)

 EXEC sp_rename 'myColumn', 'myColumn2', 'COLUMN'

答案 3 :(得分:2)

调用存储过程sp_rename应该是最简单,最快捷的方式

USE AdventureWorks2008R2;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO