在 SQLCMD 中运行脚本时,是否有设置、参数或任何其他方式使其在每个 SQL 语句的末尾有效地运行 GO 命令?
这将避免将定期 GO 命令插入到非常大的脚本中的需要。
在 SQLCMD 中运行脚本时,是否有设置、参数或任何其他方式使其在每个 SQL 语句的末尾有效地运行 GO 命令?
这将避免将定期 GO 命令插入到非常大的脚本中的需要。
不。
SQLCMD 必须自己实现一个完整的 T-SQL 解析器才能确定语句边界的位置。虽然它目前存在,但它所要做的就是找到带有“GO”的行。
鉴于“;”,确定语句边界可能非常棘手 对于大多数语句,终止符仍然是可选的。
嗯,我想这无济于事,但可以回答您的问题:
http://msdn.microsoft.com/en-us/library/ms162773.aspx
-c cmd_end 指定批处理终止符。默认情况下,通过在一行中单独键入单词“GO”来终止命令并将其发送到 SQL Server。重置批处理终止符时,请勿使用对操作系统具有特殊含义的 Transact-SQL 保留关键字或字符,即使它们前面有反斜杠。
尤其是最后一句话,听起来很吓人……
如果您的所有行都以 ; 并且没有;任何其他地方(例如在文本字段中)尝试
sqlcmd -c ;