【发布时间】:2021-11-05 07:42:54
【问题描述】:
我正在使用 Microsoft SQL 服务器管理工作室。
我想向表 (altertable1) 添加一个新列,并使用另一个表 (stattable1) 的单元格 (Date) 中的数据命名该列。
DECLARE @Data nvarchar(20)
SELECT @Data = Date
FROM stattable1
WHERE Adat=1
DECLARE @sql nvarchar(1000)
SET @sql = 'ALTER TABLE altertable1 ADD ' + @Data + ' nvarchar(20)'
EXEC (@sql)
执行此操作,我收到以下错误,无法找出原因:
“'2021' 附近的语法不正确。”
stattable1 如下所示:
日期 |Adat
2021-09-08 |1
2021-09-08 是每日生成的数据:
**CONVERT(date,GETDATE())**
【问题讨论】:
-
您为什么要想要一个名称为日期的列?对我来说听起来像是XY Problem。
-
然而,错误是告诉你问题所在。
ALTER TABLE altertable1 ADD 2021-06-08 nvarchar(20);是语法无效。 -
将
EXEC(@sql)更改为PRINT @sql;是一种非常强大但未被充分利用的调试技术。
标签: sql-server dynamic-sql alter-table declare