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