① 5分钟最佳:sql语句加了个go 为什么报错
不是go 错了 是你的 @a varchar(50) 没指定大小吧 试试看
没看清楚 看了一眼 以为你在存储过程那 go是用来连接的两个语句块的
就是说用来连接两个可以独立运行的语句 你的去掉GO就可以了 用GO一般用来标明先后顺序,就像你举的例子,先创建表,再往表里插入数据,但是从语法上这两个句子都能通过编译 希望你明白了
② 我用vb调用外部的一个txt文件,txt文件中写的全部是sql语句,多个sql语句中间都有go,在vb中执行时报错
go是SQL内部的命令,其他编程语言调用时是用不着的。所以你要么先在txt中把所有go删掉,要么就在vb中调用sql时先检测一下,如果是go就跳过不执行。
③ SQL 里面 exe 后面的语句为什么不能用 go
exec ('命令字符串'),该'命令字符串'必须是'一个'批语句,而 go 会将一个批语句拆解为2个批语句,所以会出错.
④ sql server 中有的时候缺少 go 会报错,是为什么比如: create database somename go sp_renamedb'some'
go代表着批处理命令的一次执行,如果你的下一条命令依附于上一条命令,则在上一条命令结束后,要写上go,意味着go之前的命令要执行一次。
否则,这两条命令将捆绑在一起编译后统一执行,像你这种情况,在somename数据库还未创建的情况下,下一条命令对somename重命名自然执行不过。