我需要知道如何从任何名称重命名 SQL 表列。如果我知道当前名称,我可以使用以下代码。
sp_RENAME 'TableName.[OldColumnName]' , '[NewColumnName]', 'COLUMN'
但是,如果我不知道列名,如何将其更改为新列名?提前致谢。
我需要知道如何从任何名称重命名 SQL 表列。如果我知道当前名称,我可以使用以下代码。
sp_RENAME 'TableName.[OldColumnName]' , '[NewColumnName]', 'COLUMN'
但是,如果我不知道列名,如何将其更改为新列名?提前致谢。
如果您知道列号(序号位置),则可以通过运行以下查询来获取列名:
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'
不过要非常小心,因为更改表可能会导致无法预料的后果,如果存储过程、触发器等按名称显式调用列,它们将不再正常工作。