首页 > 解决方案 > SQL Server 添加列然后更新列错误

问题描述

我正在编写一个在导入多个表后修改多个表的 sql 脚本。在一个表中,我没有“RCVDDATE”列,但在另一个相关表中却有。我正在使用以下命令添加新表:

ALTER TABLE TEST.CASES.ADDRESS
ADD RCVDDATE DATE;

然后我运行这个命令来引入正确的值:

UPDATE TEST.CASES.ADDRESS
SET RCVDDATE = c.RCVDDATE
FROM TEST.CASES.CALLS c
Where TEST.CASES.ADDRESS.CALL_NUMBER = c.CALL_NUMBER;

单独他们工作正常。但是当我在脚本中执行它们时会引发错误:

Msg 207, Level 16, State 1, Line 5
Invalid column name 'RCVDDATE'. 

我的 Intellisense 有问题还是有其他问题?如果您对如何让脚本在 SQL Server 中运行有任何建议,请告知。

标签: sqlsql-server

解决方案


您需要一个 GO 语句来分隔您的批次。来自https://docs.microsoft.com/en-us/sql/t-sql/language-elements/sql-server-utilities-statements-go?view=sql-server-2017

SQL Server 应用程序可以将多个 Transact-SQL 语句发送到 SQL Server 实例以作为批处理执行。然后将批处理中的语句编译为单个执行计划。程序员在 SQL Server 实用程序中执行即席语句,或构建 Transact-SQL 语句的脚本以通过 SQL Server 实用程序运行,使用 GO 表示批处理结束。


推荐阅读