具体不废话了,请看下文详解。
1
2
3
4
5
6
7
8
9
10
|
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分隔的语句都是一个单独的事务,一个语句执行失败不会影响其它语句执行。
例如:
首先同时执行下边的语句
1
2
|
select
*
from
sysobjects
where
id=a
select
getdate()
|
你会发现会报错,并且不会显示任何结果集
而你再执行
1
2
3
4
|
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 ,分批处理数据……
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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
|