1、变量
(1)局部变量
A、局部变量必须以标记@作为前缀 ,如@age。
B、局部变量的使用先声明,再赋值。
C、声明局部变量
DECLARE @变量名 数据类型
D、赋值
SET @变量名 = 值
SELECT @变量名 = 值
-- 变量声明 DECLARE @name NVARCHAR(20) -- 变量赋值 SET @name='wxh' -- 选择或者打印 PRINT @name |
(2)全局变量
A、全局变量必须以标记@ @作为前缀,如@@version
B、全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值
C、全局变量的类型与含义
变量 | 含义 |
@@ERROR | 最后一个T-SQL错误的错误号 |
@@IDENTITY | 最后一次插入的标识值 |
@@LANGUAGE | 当前使用的语言的名称 |
@@MAX_CONNECTIONS | 可以创建的同时连接的最大数目 |
@@ROWCOUNT | 受上一个SQL语句影响的行数 |
@@SERVERNAME | 本地服务器的名称 |
@@TRANSCOUNT | 当前连接打开的事务数 |
@@VERSION | SQL Server的版本信息 |
-- 查看全局变量 SELECT @@ERROR AS '错误编码', @@LANGUAGE AS '当前语言', @@MAX_CONNECTIONS AS 最大连接数, @@SERVERNAME AS '本地服务器名称', @@TRANCOUNT AS '当前连接打开的事务数' , @@VERSION AS '版本' | |
输出如下: | |
错误编码 当前语言 最大连接数 本地服务器名称 当前连接打开的事务数 版本 0 简体中文 32767 DESKTOP-4L7OEN6 0 Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) |
2、输出语句
(1)print 局部变量或字符串
结果在消息窗口以文本方式显示。
(2)SELECT 局部变量 AS 自定义列名
结果在网格窗口以表格方式显示。
-- 输出语句 PRINT '中国计量大学' -- select DECLARE @s NVARCHAR(20) SET @s='中国计量大学' SELECT @s AS '就读学校' |
输出如下: |
消息: 中国计量大学 结果: 就读学校 中国计量大学 |
3、逻辑控制语句
(1)IF-ELSE 条件语句
IF(条件)
BEGIN
语句块„„
END
ELSE
„„
-- if else 条件语句 DECLARE @score INT SET @score=60 IF(@score BETWEEN 0 AND 59) BEGIN PRINT '不及格' END ELSE IF(@score BETWEEN 60 AND 79) BEGIN PRINT '及格' END ELSE BEGIN PRINT '优秀' END |
(2)WHILE 循环语句
WHILE(条件)
BEGIN
语句块„„
(BREAK)-- 跳出循环,可选语句。
END
-- while循环 DECLARE @w INT DECLARE @h INT DECLARE @i INT DECLARE @j INT DECLARE @p NVARCHAR(50) SET @h=10 SET @i=1 WHILE (@i<=@h) BEGIN SET @p='' SET @w=@i SET @j=1 WHILE (@j<=@w) BEGIN SET @p=@p + '* ' SET @j=@j+1 END PRINT @p SET @i=@i+1 END |
输出结果: |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
(3)CASE—END 多分支语句
CASE
WHEN 条件1 THEN 结果1
WHEN 条件2 THEN 结果2 ……
(ELSE) -- 其他结果,可选语句。
END
USE info
SELECT uId, uName,(CASE uGender WHEN 1 THEN '男' WHEN 0 THEN '女' ELSE '空' END) AS uGender FROM dbo.[user]
|
输出结果: |
uId uName uGender 1 吴鑫晖 男 2 徐晨旖 女 3 待天顶 空 |
(4)GO 批处理语句
语句1
语句2
……
GO -- 批处理语句的标志
A、批处理是包含一个或多个 SQL 语句的组,从应用程序一次性地发送到SQLServer 执行。SQL Server 将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条。
B、 GO是批处理的标志,表示SQL Server将这些T-SQL语句编译为一个执行单元,提高执行效率。一般是将一些逻辑相关的业务操作语句,放置在同一批中,这完全由业务需求和代码编写者决定。
C、 SQLServer规定:如果是建库、建表语句、以及我们后面学习的存储过程和视图等,则必须在语句
D、每个被GO分隔的语句都是一个单独的事务,一个语句执行失败不会影响其它语句执行。
末尾添加 GO 批处理标志,分批处理数据
USE MyInfo GO
SELECT * FROM dbo.tb_user WHERE GO --报错也会执行下面的语句
SELECT * FROM dbo.tb_user GO |
参考自:
http://wenku.baidu.com/link?url=uyhdNkvipHxpODugbCkPnp0Wx8mbYT1-WZ3iXWWDhyDqwF7tpLTA0hd9-491g97uZRBszv0Ztzn73jhWUpVwwpMtZM3BdFAA_QlHUtO8mTC