procédure stockée SQL et modifier les données sur le terrain sous forme de texte
SQL procédures stockées
Procédures stockées SyntaxeLes trois formes:
pas de retour sans argument , pas de retour a des paramètres , il y a des paramètres là - bas .
Procédures stockées cas intégré
Procédures stockées « retour sans aucun argument. »
Faites attention: Si la procédure stockée est toujours présent il n'y a pas besoin de déterminer s'il y a une procédure stockée <Suit même>
//存储过程 《无返无参》
//判断存储过程是否存在 储存过程名称(sp_或xp_)
if exists(select * from sysobjects where name='sp_heros')
//存在删除
drop proc sp_heros
go
//创建存储过程
create proc sp_heros
as
//SQL执行语句
select * from UserInfo s1,Sutclass s2 where s1.UserID=s2.UserID order by s1.UserID
go
//调用存储过程 (exec 或 execute)
exec sp_heros
Procédures stockées « n'a pas de paramètres de retour »
//存储过程《无返有参》
//判断存储过程是否存在
if exists(select * from sysobjects where name='xp_peroscan')
//存在删除
drop proc xp_peroscan
go
//创建存储过程
create proc xp_peroscan
//创建一个返回参数变量
@sum varchar(50)
as
//SQL执行语句
select * from UserInfo s1,Sutclass s2 where s1.UserID=s2.UserID and UserName like ''+@sum+'%' order by s1.UserID
go
//调用存储过程
exec xp_peroscan '赵'
Les procédures stockées « sont revenus que le Sénat »
//存储过程 《有返有参》
if exists(select * from sysobjects where name='sp_terop')
//存在删除
drop proc sp_terop
go
create proc sp_terop
//创建一个返回参数变量
@num int output,
//创建一个参数的变量
@ken varchar(10)
as
//SQL执行语句
select @num=count(*) from UserInfo where Addres like ''+@ken+'%'
go
//声明一个变量
declare @hun int //(可自选或者可和返回参数的参数名一样)
exec sp_terop @hun output,'湖北'
print '个数:'+convert(varchar(5),@hun)
Procédures stockées cas intégré
//创建一个逻辑判断的存储过程 有返有参
if exists(select * from sysobjects where name='sp_jisuanji')
drop proc sp_jisuanji
go
create proc sp_jisuanji
@sum int output,
@num1 int,
@bnt varchar(10),
@num2 int
as
if(@bnt='+')
begin
set @sum=@num1+@num2
end
else if(@bnt='-')
begin
set @sum=@num1-@num2
end
else if(@bnt='*')
begin
set @sum=@num1*@num2
end
else if(@bnt='/')
begin
set @sum=@num1/@num2
end
else
begin
set @sum=404
end
go
declare @kun int
exec sp_jisuanji @kun output,2,'+',1
print '结果为:'+convert(varchar(5),@kun)
exemple deux
// 逻辑判断并添加 (查询数据库是否存在张三,是则添加,否则返回404)
if exists(select * from sysobjects where name='sp_youer')
drop proc sp_youer
go
create proc sp_youer
@num01 int output,
@UserName varchar(50),
@UserPwd varchar(50),
@Sex varchar(2),
@Birthday datetime,
@Addres varchar(200),
@Remarks varchar(200)
as
declare @sum int
select @sum=count(1) from UserInfo where UserName=@UserName
if(@sum>0)
begin
set @num01=404
end
else
begin
insert into UserInfo values(@UserName,@UserPwd,@Sex,@Birthday,@Addres,@Remarks)
set @num01=ISNULL( @@IDENTITY,0)
end
go
declare @num02 int
exec sp_youer @num02 output,'张三','123456','女','1998/04/08','湖北省咸宁市通山县','我是臭弟弟06'
if(@num02=404)
begin
print '添加失败'+convert(varchar(50),@num02)
end
else
begin
print '添加成功'+convert(varchar(50),@num02)
end
select * from UserInfo
//查询表中有几条数据
select ISNULL(@@IDENTITY,0) from UserInfo
Les données de terrain sous forme de texte au lieu
En général, les hommes et les femmes seront convertis en texte sous la forme d'un type de char (2), nous allons habituellement [0/1].
// 例子 0--男 1--女 《男女问题》
select sex=case when sex=0 then '男' when sex=1 then '女'end from UserInfo