sql存储过程的创建
一:没有参数的存储过程
CREATE PROCEDURE select_all AS BEGIN SELECT * from T_login1 END GO
二:带参数的存储过程
CREATE PROCEDURE select_name @id uniqueidentifier AS BEGIN SELECT * from T_login1 where PSN0001A=@id END GO
三:带通配符参数存储过程
alter proc proc_findStudentByName @name nvarchar(10)='F%' as select * from T_login1 where PSN0001A like @name go exec proc_findStudentByName 'F%'
四:带默认值的参数的存储过程
create proc sele_name @name nvarchar(10)='hong3' as select * from T_login1 where PSN0002A=@name exec sele_name 'lk' exec sele_name
五:带输出参数的存储过程
create proc [dbo].[p_selectName] @name nvarchar(10), @num int output as select @num=COUNT(PSN0001A) from T_login1 where PSN0002A=@name declare @num int exec p_selectName 'lk',@num output print @num declare @num1 int exec p_selectName @name='lk',@num=@num1 output print @num1
六:临时存储过程
create proc #p_selectName2 as select COUNT(PSN0001A) from T_login1 where PSN0002A='lk' exec #p_selectName2
七:存储过程的嵌套
alter proc #p_selectName2 as select COUNT(PSN0001A) from T_login1 where PSN0002A='lk' exec sele_name exec #p_selectName2
八:不缓存的存储过程
if (object_id('proc_temp', 'P') is not null) drop proc proc_temp1--如果存在不为空,释放掉 go create proc proc_temp1 with recompile as select * from T_login1 go exec proc_temp1;
九:加密存储过程(无法查看存储过程的代码)
if (object_id('proc_temp_encryption', 'P') is not null) drop proc proc_temp_encryption go create proc proc_temp_encryption with encryption as select * from T_login1; go exec proc_temp_encryption; exec sp_helptext 'proc_temp1'; exec sp_helptext 'proc_temp_encryption';
十:存储过程中使用if......else
CREATE PROCEDURE pro_numToName @num int , @str nvarchar(5) output AS if @num=11 begin set @str='wang' end else begin set @str='qita' end