我在下面的sql server管理中尝试了一次查询。
alter table add column amount2
update table set amount2=amount
我找不到列数量2。
有谁能告诉我为什么会出现这个错误?
答案 0 :(得分:5)
这不是有效的语法(错过表名和列数据类型),但在管理工作室中,在将列添加到现有表和引用新列的语句之间使用批处理分隔符GO
。
或者您可以使用EXEC
在子批处理中执行它。
SQL Server尝试在执行之前编译批处理中的所有语句,这在使用此列遇到语句时将失败。
答案 1 :(得分:1)
这里有一些问题。
添加列的正确语法是MSDN - ALTER TABLE
ALTER TABLE [TableName] ADD [ColumnNAME] [DataType]
'表'是SQL Server中的Reserved Keyword,尽管可以有一个名为'Table'的表。引用时需要包含括号。
SELECT * FROM [Table]
总之,你需要
ALTER TABLE [Table] ADD [Amount2] INT
GO -- See Martin's answer for reason why 'GO' is needed here
UPDATE [Table] SET [Amount2] = [Amount]
答案 2 :(得分:1)
你可以像这样解决这个问题:
- 更改表格并添加新列“NewColumn”
ALTER TABLE [MyTable] ADD [NewColumn] CHAR(1)NULL;
- 设置NewColumn的值
EXEC('UPDATE [MyTable] SET [NewColumn] =''A''');