未找到列

时间:2013-09-21 16:59:04

标签: sql-server

我在下面的sql server管理中尝试了一次查询。

alter table add column amount2

update table set amount2=amount

我找不到列数量2。

有谁能告诉我为什么会出现这个错误?

3 个答案:

答案 0 :(得分:5)

这不是有效的语法(错过表名和列数据类型),但在管理工作室中,在将列添加到现有表和引用新列的语句之间使用批处理分隔符GO

或者您可以使用EXEC在子批处理中执行它。

SQL Server尝试在执行之前编译批处理中的所有语句,这在使用此列遇到语句时将失败。

答案 1 :(得分:1)

这里有一些问题。

  1. 添加列的正确语法是MSDN - ALTER TABLE

    ALTER TABLE [TableName] ADD [ColumnNAME] [DataType]
    
  2. '表'是SQL Server中的Reserved Keyword,尽管可以有一个名为'Table'的表。引用时需要包含括号。

    SELECT * FROM [Table]
    
  3. 总之,你需要

    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''');