SQLは、ストアドプロシージャを、テキスト形式のフィールドのデータを変更します

SQLストアドプロシージャ

ストアドプロシージャの構文三つの形式:
なし引数を返さないがノーリターンパラメータを持っていないそこに戻ってパラメータがあります
ストアドプロシージャに統合する場合

ストアドプロシージャは、「何の引数を返しません。」

ご注意ください:ストアドプロシージャが常に存在している場合は、ストアドプロシージャがあるかどうかを判断する必要はありません <同様従います>

//存储过程	《无返无参》
//判断存储过程是否存在  储存过程名称(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

ストアドプロシージャは、「ノーリターン・パラメータを持っていません」

//存储过程《无返有参》
//判断存储过程是否存在
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 '赵'

ストアドプロシージャは、「上院を持って戻ってきました」

//存储过程 《有返有参》
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)

ストアドプロシージャに統合する場合

//创建一个逻辑判断的存储过程 有返有参
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)

例二

// 逻辑判断并添加 (查询数据库是否存在张三,是则添加,否则返回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

代わりに、テキストとしてフィールドデータ

一般的に男性と女性がchar(2)タイプの形でテキストに変換されます、我々は通常意志[0/1]。

// 例子		0--男   1--女   《男女问题》
select sex=case when sex=0 then '男' when sex=1 then '女'end from UserInfo
出版元の記事 ウォンの賞賛0 ビュー20

おすすめ

転載: blog.csdn.net/m0_46253449/article/details/104774621
おすすめ