最后用GO执行命令字符串

Vya*_*lav 5 sql sql-server

我需要在最后使用GO命令执行命令字符串

exec('SELECT * FROM tblTmp where Id = 1 GO')
Run Code Online (Sandbox Code Playgroud)

执行后我有

'GO'附近的语法不正确.

如果我执行exec('SELECT * FROM tblTmp GO')一切都没问题

这是什么问题?

谢谢.

Qua*_*noi 18

GO不是一个SQL命令,它是由客户端像理解分批分离器osql,sqlcmdSSMS而不是发动机本身.

如果你写这样的东西SSMS:

SELECT  1
GO
SELECT  2
GO
Run Code Online (Sandbox Code Playgroud)

,引擎发送两个批处理,每个批处理中有一个语句,而不是一个包含两个语句的批处理.

在第二个查询中,GO被视为表的别名tblTmp.

只需GO从查询中删除即可.


Pau*_*sik 2

您不需要对单个 SQL 语句使用 GO。仅当您将多个语句批处理到单个脚本中时,才需要使用分隔符。另外,如果您以编程方式执行这些操作,则应该使用分号 (;) 语句终止符而不是 GO 来分隔 SQL 语句。

这是一篇有关 GO 和分号用法的实用 SQL Server Central 文章