关于sqlserver里go的用法,求解惑

「已注销」 2017-11-02 02:56:09

use OrderDB
create table Table2 (
test2 char(1)
)
create table Table3 (
test3 char(1)
)
go
create view View1
as
select *
from Table2

新人学SQL不久,请问一下,这里的go不加就会报错,提示

所以请问:
go在什么情况下用,什么情况下可以不用,有没有具体明确的分界线...我在百度里搜索,go是起到终止一块事务的作用,是不是因为创建表是一个事务,创建视图是另一个事务所以中间才必须要加go呢?
...全文
594 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2017-11-02
  • 打赏
  • 举报
回复
谢谢版主和另外一个朋友,结贴了~
OwenZeng_DBA 2017-11-02
  • 打赏
  • 举报
回复
引用 4 楼 lsj7686856 的回复:
像grant语句中间就可以没有go,可以一直写
CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE SCHEMA, CREATE TRIGGER, and CREATE VIEW 大概就是这些
「已注销」 2017-11-02
  • 打赏
  • 举报
回复
像grant语句中间就可以没有go,可以一直写
「已注销」 2017-11-02
  • 打赏
  • 举报
回复
如何知道某个语句是否规定其使用必须作为批次中的第一个语句呢?比如这里的create view或者所有存储过程,都是吧。
OwenZeng_DBA 2017-11-02
  • 打赏
  • 举报
回复
GO 用于分批次的,而 'CREATE VIEW' 必须是查询批次中的第一个语句。所以这里必须有GO
听雨停了 2017-11-02
  • 打赏
  • 举报
回复
go是批处理的终止符号,由于创建视图必须是查询批次中的第一个语句。所以你必须在前面加上go,用于终止前一个批处理,这样下一个批处理的开头自然就是create view了

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧