(1)@:用户定义 局部变量(作用域在本批中,变量间不可用go 分隔,否则报错)
@@:系统定义 全局变量
例:
Declare @a int(对)
Declare @b int (对)
Declare @a,@b int (错)
Declare @a int,@b int (对)
对变量赋值:set / select
set:效率高 ,但只能给一个变量赋值 如:set @a=10 (建议)
select:效率低,但要同时给多个变量赋值必须要用select
set @A=10 ,@b=20 (错)
select @A=10 ,@b=20 (对)
(2)数据类型的转换函数
cast(express as tpye)
convert(tpye,express)
eg:
print 'abc'+cast(123 as varchar(10))
print 'abc'+convert(varchar(10),123)
(3)isnull()函数 --区别于 is null(判断是否为空)
select isnull(location,'无信息') from orders
查询location字段是否为空,为空,则返回 无信息 不为空则返回Location原值。
(4) #表名:局部临时表,只在当前会话中有效
##表名:全局临时表,在所有的会话中有效
(5)T-SQL 只支持while循环
(6)waitfor函数
eg: waitfor delay '00:00:03'
print 'abc' ----------- 延迟3秒后显示执行结果
waitfor time '00:00:03'
print 'abc' ----------- 定时效果,在凌晨3秒显示执行结果
(7)异常Exception
RAISERROR:用户自定义的错误ID要在50000以上,50000以下是系统定义
severity:代表错误的严重程度,级别为0-25级(17级以下用户可以自己解决,17级以上找DBA解决)
0级表示可以正常显示,10级表示用户输入错误或不正确,11-16用户错误操作,17-25软件或硬件上的错误。
RAISERROR('错误ID’,错误的级别,状态)
RAISERROR('有怪兽',0,1) -->有怪兽
RAISERROR('有怪兽',11,1) -->消息208,级别11,状态1 第1行 有怪兽
RAISERROR('有怪兽',16,1) -->消息 50000,级别16 ,状态1,第1行 有怪兽
RAISERROR('有怪兽',20,1) with log -->消息 2407,级别16 ,状态1,第1行 有怪兽
@@:系统定义
例:
对变量赋值:set
set:效率高 ,但只能给一个变量赋值 如:set @a=10 (建议)
select:效率低,但要同时给多个变量赋值必须要用select
set @A=10 ,@b=20 (错)
select @A=10 ,@b=20 (对)
(2)数据类型的转换函数
cast(express as
convert(tpye,express)
eg:
(3)isnull()函数
select isnull(location,'无信息') from orders
查询location字段是否为空,为空,则返回 无信息 不为空则返回Location原值。
(4)
(5)T-SQL 只支持while循环
(6)waitfor函数
eg: waitfor delay
(7)异常Exception
RAISERROR('错误ID’,错误的级别,状态)
RAISERROR('有怪兽',0,1)
RAISERROR('有怪兽',11,1)
RAISERROR('有怪兽',16,1)
RAISERROR('有怪兽',20,1) with log
本文详细介绍了SQL中变量的声明与赋值方法,包括局部变量和全局变量的区别,如何高效地进行变量赋值。同时讲解了数据类型转换函数的使用,并通过实例演示了如何利用isnull()函数处理空值。此外,还介绍了SQL的循环、等待函数以及异常处理机制,包括如何自定义错误ID和级别。

被折叠的 条评论
为什么被折叠?



