gpt4 book ai didi

sql-server - 使用 ALTER TABLE ... ADD COLUMN 语法时出错

转载 作者:行者123 更新时间:2023-12-03 01:55:51 25 4
gpt4 key购买 nike

我正在为我们的开发人员提供一种轻松更新数据库的方法。我们这样做的方法是创建动态查询,它们在顶部定义变量,并且查询将这些变量用于其他所有内容。我使用了 Stackoverflow 上的许多建议,但无法使其发挥作用。

USE MyDatabase
DECLARE @TABLE VARCHAR(200) = 'MyTable'
DECLARE @COLUMN VARCHAR(200) = 'MyColumn'
DECLARE @DATATYPE VARCHAR(200) = 'VARCHAR(200)'

IF COL_LENGTH(@TABLE, @COLUMN) IS NULL
BEGIN
DECLARE @SQL as NVARCHAR(MAX) = 'ALTER TABLE ' + @TABLE + ' ADD COLUMN '
+ @COLUMN +' '+ @DATATYPE
EXEC SP_EXECUTESQL @SQL
END

我收到错误:

Incorrect syntax near the keyword 'COLUMN'.

最佳答案

错误消息表明这是错误的语法。 Somewhat confusingly添加列时不允许使用 COLUMN 关键字。

此外,VARCHAR(200) 实际上应该是 SYSNAME 来处理所有可能的有效名称(当前相当于 nvarchar(128))并且使用 QUOTENAME 正确转义任何包含 ]

的对象名称

有关此内容的更多信息,请参见 The Curse and Blessings of Dynamic SQL: Dealing with Dynamic Table and Column Names

关于sql-server - 使用 ALTER TABLE ... ADD COLUMN 语法时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17201259/

25 4 0