一:批处理
理解批处理的概念
批处理是作为一个逻辑单元的T-SQL语句。如果一条语句不能通过语法分析,那么不会运行任何语句。如果一条语句在运行时失败,那么产生错误的语句之前的语句都已经运行了。
为了将一个脚本分为多个批处理,可使用GO语句。
GO语句的特点:
- GO语句必须自成一行,只有注释可以再同一行上。
- 它使得自脚本的开始部分或者最近一个GO语句以后的所有语句编译成一个执行计划并发送到服务器,与任何其他批处理无关。
- GO语句不是T-SQL命令,而是由各种SQL Server命令实用程序(如:Management Studio中的"查询"窗口)识别的命令。
二:局部变量和全局变量
局部变量
①局部变量必须用@前缀
②先声明,再赋值
③只在定义它的局部范围内有效
--声明变量
--DECLARE @变量名 数据类型
DECLARE @id char (10) --声明一个长度为个字符的变量id
DECLARE @age int --声明一个存放职员年龄的整型变量
--变量赋值
--SET @变量名 = 值 :用于普通的赋值
SET @age = 20
--SELECT @变量名 = 值:用于从表中查询数据并赋值
SELECT @id = '11111'
--使用变量
--找王五学号前后的同学
declare @sid int
select @sid = stuid from StuInfo where stuname='王五'
print '王五的学号为:' + convert(varchar(20),@sid)
select * from StuInfo where stuid=@sid-1 or stuid=@sid+1
使用select 进行赋值时如果查询到的是一个结果集 那么变量得到的值是最后一条记录
三:输出语句
--print 变量或表达式:以消息形式进行显示
PRINT '数据库服务器名:' + @@SERVICENAME
print 15 * 8
--select 变量或表达式:以表格形式进行显示
SELECT 15 * 8
select '数据库服务器名:' + @@SERVICENAME
--强制类型转换 convert(要转成的数据类型,要转换的值)
四:循环语句
(一) .IF-ELSE条件语句
语法:IF()
语句或语句块
ELSE
语句或语句块
若有多条语句,则使用语句块,语句块使用BEGIN...END表示,其作用相当于Java语句的“{}”符号。
IF()
BEGIN
语句1
语句1
.....
END
ELSE
(二).CASE 多分支语句:相当于多重if语句
语法:
CASE
WHEN 条件1 THEN 结果1
WHEN 条件2 THEN 结果2
[ELSE 其他结果]
END
(三). WHILE 循环语句 :在循环语句中使用continue和break关键字来控制语句的执行。
语法:
WHILE(条件)
语句或语句块
[BREAK]
使用break关键字从最内层的while循环中退出。