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是本来就这样,还是其中蕴涵学问哦?
相当于分段标志。你那个地方不加go,系统以为你下面的语句还是create view里面的,所以报错。
用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。
GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。
as
select 1 id但是后面有其它语句的话,系统就会认为它是create view 后面的内容,即也是视图创建相关的代码,而事实上却不是,就报错了。加go,是分批语句,即代表一个批次的结束。
改成
exec('Create VIEW B_st(sno,sname,birth) AS SELECT sno,sname,2008-age From Student')
就可以不要GO了
向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。