--无参数存储过程 --搜索t_Admin表中的所有信息 create proc SearchAdmin as --不可以省略 begin -- begin 与 end 是一对,不可以只写其中一个,但可以都不写 select AdminID,AdminName,AdminPWD from t_Admin end go --执行 exec SearchAdmin go --有参数存储过程 --根据AdminID搜索t_Admin对应的信息 create proc SearchAdminByID @AdminID int as select AdminID,AdminName,AdminPWD from t_Admin where AdminID = @AdminID go exec SearchAdminByID 1 go --上面是在外部给变量赋值,也可以在内部给变量赋值 create proc SearchAdminByID2 @AdminID int=2 as Select AdminID,AdminName,AdminPWD from t_Admin where AdminID = @AdminID go --执行 不给值时 会搜索2的数据 exec SearchAdminByID2 --执行 给值则搜索给定值的数据 exec SearchAdminByID2 1 --把变量的内容输出,使用output create proc SearchOutPut @AdminName varchar(20), @IsRight int output as if exists (select AdminID,AdminName,AdminPWD from t_Admin where AdminName = @AdminName) set @IsRight = 1 else set @IsRight = 0 go --执行 declare @IsRight int exec SearchOutPut 'Gyg01', @IsRight output select @IsRight as 数值 ----以上都是全局变量,接下来了解局部变量 ------------------------------------------------------------ --局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内部,离开该函数后再使用这种变量是非法的。 --局部变量的定义:必须先用Declare命令定以后才可以使用,declare{@变量名 数据类型} --局部变量的赋值方法:set{@变量名=表达式}或者select{@变量名=表达式} --局部变量的显示:select @变量名 create proc SearchAdmin1 as declare @AdminName varchar(100) set @AdminName='gyg01' select AdminID,AdminName,AdminPWD from t_Admin where AdminName = @AdminName go exec SearchAdmin1 --那如果是要把局部变量的数据显示出来怎么办呢? create proc SearchAdmin2 as declare @AdminName varchar(100) set @AdminName=(select AdminName from t_Admin where AdminID = 1) select @AdminName go exec SearchAdmin2