局部变量由用户定义,生命周期只在一个批处理内有效。局部变量以一个@符号开头,由用户自己定义和赋值。赋值时用 select 或 set。
示例:
declare @age int
declare @name varchar(20)
set @name='张三' --用set 方法给变量赋值 注: 此方法一次只能给一个变量赋值
select @age=age from client where [name]=@name --查询客户张三的年龄赋值给@age变量 注:此方法能一次多个变量赋值
示例如下:
declare @Level tinyint, @ParentID int
if @参数 <= 0
select @Level = Level, @ParentID = ParentID from 表 where 条件
else
set @Level = 0
局部变量declare 与 case when 关系
如:A.Supply 是刚刚在表A添加的新的字段,默认为0; 在存储过程中声明一个变量@ @SupplyID=A.SupplyID,此时会出现select @SupplyID结果只有新添加的值。而那些默认为0的值不见 。因此在下面的 if ..else if.. 中不会执行@Supply语句。出现这种情况就要考虑换钟方式 ,这时可以使用 case when 代替实现,case when A.SupplyID=0 then 结果1 else 结果2 end
示例:
declare @SupplyID SMALLINT
select @SupplyID=A.SupplyID FROM 表 A
--select @SupplyID
if(@SupplyID=0)
begin
...
end
else if(@SupplyID<>0)
begin
...
end
return 0
越努力越幸运!