在SQLCMD中运行脚本时,是否有设置,参数或任何其他方法使其在每个SQL语句结束时有效地运行GO命令?
这样可以防止需要将定期GO命令插入到非常大的脚本中。
答案 0 :(得分:8)
没有
SQLCMD必须实现一个完整的T-SQL解析器,以确定语句边界的位置。虽然它目前存在,但它所要做的就是找到带有“GO”的行。
鉴于“;”,确定语句边界可能非常棘手对于大多数陈述,终结符仍然是可选的。
答案 1 :(得分:2)
http://msdn.microsoft.com/en-us/library/ms162773.aspx
-c cmd_end 指定批处理终止符。默认情况下,命令终止并通过单独在一行上键入单词“GO”发送到SQL Server。重置批处理终止符时,请不要使用Transact-SQL保留关键字或对操作系统有特殊含义的字符,即使它们前面有反斜杠。
特别是最后一句听起来令人生畏......
如果所有线路都以;而且没有;任何其他地方(例如在文本字段中) 试试
sqlcmd -c ;