条件SQL语句语法不正确

时间:2014-08-13 08:11:10

标签: sql-server sql-server-2008 tsql

我在SQL Server 2008中遇到条件SQL脚本的问题。

当我单独运行每个命令时,一切正常,我成功更新了我的数据库

但是当我将所有内容分成一个命令时,我会收到错误:

  

Msg 102,Level 15,State 1,Line 3
  ';'附近的语法不正确。

     

Msg 207,Level 16,State 1,Line 1
  列名称'sAdvertTypeCode'无效。

     

Msg 102,Level 15,State 1,Line 2
  'end'附近的语法不正确。

所以我尝试了没有分号';'

错误是:

  

Msg 102,Level 15,State 1,Line 3
  ')'附近的语法不正确。

     

Msg 207,Level 16,State 1,Line 1
  列名称'sAdvertTypeCode'无效。

     

Msg 102,Level 15,State 1,Line 2
  'end'附近的语法不正确。

我的剧本:

IF COL_LENGTH('TechnicalDialogue', 'sAdvertTypeCode') IS NULL
begin
    ALTER TABLE TechnicalDialogue ADD sAdvertTypeCode varchar(40) ;
    go
    UPDATE TechnicalDialogue SET sAdvertTypeCode = 'advert.type.broadcast' ;
    go
    Select * FROM TechnicalDialogue;
end

我对SQL Server没有太多经验,所以我有点困惑。

1 个答案:

答案 0 :(得分:3)

GO不是一个SQL语句。它是command used in the client to execute batches of SQL,所以你不能在BEGIN / END中间拥有它。 GO将从脚本开始或最后一次GO发送到服务器执行所有内容,因此服务器看到开始但没有结束。 - Matt Gibson 26分钟前