使用变量
和C语言一样,变量分为:
q 局部变量:
q 局部变量必须以标记@作为前缀 ,如@age
q 局部变量的使用也是先声明,再赋值
q 全局变量:
q 全局变量必须以标记@ @作为前缀,如@@version
q 全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值
局部变量
q 声明局部变量
DECLARE @变量名 数据类型
例如:
DECLARE @name varchar(8)
DECLARE @seat int
q 赋值
SET @变量名 =值
SELECT @变量名 = 值
例如:
SET @name=‘张三’
SELECT @name=stuName FROM stuInfo
WHERE stuNo=‘s25302’
必须确保筛选出的记录只有1条,否则取最后一条,所以T-SQL语句后面一般接WHERE筛选条件。
问题:编写T-SQL查找张三的左右同桌 ?
分析:
第一步,找出“张三“的座位号;
第二步,张三的座位号加1或减1
例子:
/*--查找张三的信息--*/
DECLARE @name varchar(8) --学员姓名
SET @name=‘张三’ --使用SET赋值
SELECT * FROM stuInfo WHERE stuName = @name
/*--查找张三的左右同桌--*/
DECLARE @seat int --座位号
SELECT @seat=stuSeat FROM stuInfo --使用SELECT赋值
WHERE stuName=@name
SELECT * FROM stuInfo
WHERE (stuSeat = @seat+1) OR (stuSeat = @seat-1)
GO
全局变量
全局变量都使用两个@标志作为前缀
变量
含义
@@ERROR
最后一个T-SQL错误的错误号
@@IDENTITY
最后一次插入的标识值
@@LANGUAGE
当前使用的语言的名称
@@MAX_CONNECTIONS
可以创建的同时连接的最大数目
@@ROWCOUNT
受上一个SQL语句影响的行数
@@SERVERNAME
本地服务器的名称
@@TRANSCOUNT
当前连接打开的事务数
@@VERSION
SQL Server的版本信息
重点是粗线标识的全局变量,其他的可以到SQL Server帮助中查询。
例子:
print ‘SQL Server的版本’+@@VERSION
print ‘服务器的名称: ‘+@@SERVERNAME
INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge)
VALUES(‘武松’,’s25328’,’男’,’23’)
--如果大于0表示上一条语句执行有错误
print ‘当前错误号’+convert(varchar(5),@@ERROR)
print ‘刚才报名的学员,座位号为:’
+convert(varchar(5),@@IDENTITY )
UPDATE stuinfo SET stuAge=85
WHERE stuName=‘张三’
print ‘当前错误号’+convert(varchar(5),@@ERROR)
GO