Create VIEW B_st(sno,sname,birth) AS SELECT sno,sname,2008-age From Student
GO                        --没这个GO怎么都不行
Select * from B_st
对照组:
Create table SC(         
sno char(6) NOT NULL,
cno char(2) NOT NULL,
grade numeric(2))                
INSERT into SC(sno,cno,grade)   --创建完表之后可以立即工作
select  '200101','c1',90是本来就这样,还是其中蕴涵学问哦?

解决方案 »

  1.   

    如果你单独只是创建VIEW,那可以没有
      

  2.   

    GO 表示一批 T-SQL 语句结束,GO 之后的 T-SQL 语句属于另一个批处理的范围,在 T-SQL 所有语句的最后都默认有一个 GO。但是,请注意 GO 不是 T-SQL 语句,而只是一个能被SQL Server 实用工具识别的命令。
      

  3.   

    GO表示把前面的sql语句作为一批,进行提交。
    相当于分段标志。你那个地方不加go,系统以为你下面的语句还是create view里面的,所以报错。
      

  4.   

    GO
    用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。
    GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。
      

  5.   

    你当然也可以不跟create view v
    as
    select 1 id但是后面有其它语句的话,系统就会认为它是create view 后面的内容,即也是视图创建相关的代码,而事实上却不是,就报错了。加go,是分批语句,即代表一个批次的结束。
      

  6.   

    Create VIEW B_st(sno,sname,birth) AS SELECT sno,sname,2008-age From Student
    改成
    exec('Create VIEW B_st(sno,sname,birth) AS SELECT sno,sname,2008-age From Student')
    就可以不要GO了
      

  7.   


    向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。