2

我需要知道如何从任何名称重命名 SQL 表列。如果我知道当前名称,我可以使用以下代码。

    sp_RENAME 'TableName.[OldColumnName]' , '[NewColumnName]', 'COLUMN'

但是,如果我不知道列名,如何将其更改为新列名?提前致谢。

4

2 回答 2

5

如果您知道列号(序号位置),则可以通过运行以下查询来获取列名:

SELECT COLUMN_NAME FROM Information_Schema.Columns
WHERE TABLE_NAME = '<TableName>' AND ORDINAL_POSITION = <ColumnNumber> 

这是一个可能的使用示例

DECLARE @ColName nvarchar(128)

SELECT @ColName = COLUMN_NAME FROM Information_Schema.Columns
WHERE TABLE_NAME = 'TableName' AND ORDINAL_POSITION = 6

SET @ColName = 'TableName.[' + @ColName + ']'

sp_RENAME @ColName , '[NewColumnName]', 'COLUMN'
于 2013-06-07T21:28:05.727 回答
0

不过要非常小心,因为更改表可能会导致无法预料的后果,如果存储过程、触发器等按名称显式调用列,它们将不再正常工作。

于 2013-06-07T21:26:32.680 回答