欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQLSERVER 中GO的作用详解

程序员文章站 2023-11-18 20:03:46
具体不废话了,请看下文详解。 use db_csharp go select *, 备注=case when grade>=90 then...

具体不废话了,请看下文详解。

use db_csharp
go
 select *,
 备注=case 
 when grade>=90 then '成绩优秀'
 when grade<90 and grade>=80 then '成绩良好'
 when grade<80 and grade>=70 then '成绩及格'
 else '不及格'
 end 
 from tb_grade

如果只是执行一条语句,有没有go都一样

如果多条语句之间用go分隔开就不一样了

每个被go分隔的语句都是一个单独的事务,一个语句执行失败不会影响其它语句执行。

例如:

首先同时执行下边的语句

select * from sysobjects where id=a
select getdate()

你会发现会报错,并且不会显示任何结果集

而你再执行

select * from sysobjects where id=a
go
select getdate()
go

你会发现尽管同样会报错,但结果集中包含select getdate()的结果。

ps:sql server 中 go 的用法

用信号通知 microsoft® sql server™ 实用工具一批 transact-sql 语句的结束。
go 不是 transact-sql 语句;而是可为 osql 和 isql 实用工具及 sql server 查询分析器识别的命令。

如果你的sql过长的时候,就要写go,或者有一些语句,它只能是第一句操作的,在之前你也得写 go ,go的意思 是 分批处理语句 有加这个 go ,就执行go 行的代码,执行后再执行接下来的代码……

像这样的情况下就要用到go ,分批处理数据……

use master
go

if exists (select * from sysdatabases where name = 'kejiandb')
drop database kejiandb
go

create database kejiandb
go

use kejiandb
go


--(行业表)
create table trade
(
tra_id int primary key identity(1,1) not null, --行业id (主键、自增长)
tra_name varchar(50) not null --行业名称
)
go

以上就是本文的全部叙述,希望大家喜欢。