一、定义变量及赋值
1.1 普通变量
--定义变量
declare @parameter_set int
declare @parameter_select varchar(20)
declare @parameter_update varchar(20)
--set 关键字赋值
set @parameter_set = 1;
--select 赋值
select @parameter_select = '';
select @parameter_select = Name from Member where Account = ''
--update 赋值
update Member set @parameter_update = Name where ID='';
1.2 表变量,赋值和临时表
--定义表变量
declare @tab table(Id varchar(36) not null,Name varchar(10) null
)
--赋值
insert into @tab values('123','312');
insert into @tab select ID,Name from Member;
--创建临时表
--# 表示局部的生命周期临时表
create table #table_1(Id varchar(36) not null,Name varchar(10) null
)
--## 表示全局的生命周期临时表
create table ##table_2(Id varchar(36) not null,Name varchar(10) null
)
--赋值
insert into #table_1(Id,Name) values('123','312');
insert into ##table_2 select ID,Name from Member;
二、条件、循环、分支语句、异常处理
2.1 条件 if else
if(10>2)beginprint('true');end
elsebeginprint('false');end
2.2 循环 while
declare @num int
declare @sum int
set @num=1
set @sum=0
while(&#64;num<&#61;10)beginset &#64;sum&#43;&#61;&#64;num set &#64;num&#43;&#61;1 end
print &#64;sum
2.3 分支 case when then else
declare &#64;case_value int
declare &#64;result varchar(10)
set &#64;result &#61; casewhen &#64;case_value &#61; 1 then &#39;1&#39;when &#64;case_value &#61; 2 then &#39;2&#39;when &#64;case_value &#61; 3 then &#39;3&#39;when &#64;case_value &#61; 4 then &#39;4&#39;else&#39;0&#39;end
print &#64;result
2.4 异常处理try catch
begin trydeclare &#64;try_int int;set &#64;try_int &#61; 1 / 0;print(&#39;1&#39;);
end try
begin catch
--这几个函数只能用在Catch里面!print(error_number());print(error_severity());print(error_state());print(error_procedure());print(error_line());print(error_message());
end catch
三、定义存储过程
3.1 创建存储过程及调用
--无参数无返回结果
create procedure p1
as
begin print(&#39;执行过程&#39;);
end
go
--带参数
create procedure p2&#64;parameter_1 int
as
begin print(&#64;parameter_1);
end
3.2 调用
p2 为存储过程名称,后面跟参数
--调用
execute p2 1
3.3 使用output或retuen 返回结果
3.3.1 output&#xff1a; 可以有多个&#xff0c;调用时结果结果的参数也要标识output
-- output
create procedure p3&#64;parameter_1 int,&#64;parameter_out int output,&#64;parameter_out_1 int output
as
begin set &#64;parameter_out &#61; &#64;parameter_1 &#43; 1set &#64;parameter_out_1 &#61; 10
end
--调用
declare &#64;r1 int
declare &#64;r2 int
execute p3 1,&#64;r1 output,&#64;r2 output;
print &#64;r1
print &#64;r2
go
3.3.1 return
-- return
create procedure p4&#64;parameter_1 int
as
begin return &#64;parameter_1 &#43; 1;
end
--调用
declare &#64;result int
execute &#64;result &#61; p4 10
print &#64;result
go