我已经阅读了该问题的所有答案,但没有找到(我发现的)答案。
我可以使用列号重命名一列吗?
我有一个表,该表可能已经更改了列名,所以我可能不知道“硬编码”它是什么。我可以按数字引用该列吗?
EXEC sp_rename '[ChkLst].column7', 'NewColName', 'COLUMN'"
谢谢
答案 0 :(得分:3)
您可以使用表名和列ID从SYS.COLUMNS
获取当前列名,然后按如下所示执行SP_RENAME
。请注意,不能确保列ID是连续的,并且在尝试重命名列之前,您应该确认该列的ID。
DECLARE @ColumnName VARCHAR(50);
SET @ColumnName = 'YourSchema.YourTable.';
SET @ColumnName = CONCAT(@ColumnName,
(SELECT name FROM SYS.COLUMNS WHERE OBJECT_ID = OBJECT_ID(N'YourTable') AND column_id = 7));
EXEC SP_RENAME @ColumnName, 'NewColumnName', 'COLUMN';
答案 1 :(得分:0)
如果知道列号(常规位置),则可以通过运行以下查询来获取列名:
SELECT COLUMN_NAME FROM Information_Schema.Columns
WHERE TABLE_NAME = '<TableName>' AND ORDINAL_POSITION = <ColumnNumber>
,您可以通过以下查询使用列名:
DECLARE @ColName nvarchar(100)
SELECT @ColName = COLUMN_NAME FROM Information_Schema.Columns
WHERE TABLE_NAME = 'TableName' AND ORDINAL_POSITION = 2
SET @ColName = 'TableName.[' + @ColName + ']'
sp_RENAME @ColName , '[NewColumnName]', 'COLUMN'
答案 2 :(得分:0)
你可以喜欢
<form action="validation.html">
<div class="email">
<input type="email" placeholder="Email" required>
</div>
<button type="submit" class="subscription-button">Keep Me Posted!</button>
</form>