912存储过程的创建 (2)在文本框中输入代码后,如果单击“检查语法”按钮,可以对 输入的代码进行语法检查,如图9-3所示。连续单击前后两个 “确定”按钮,自动保存并返回“企业管理器”对话框2,从中 可以发现存储过程“muti”,如图9-4所示。 存储过程属性一新建存储过程 SQLServer Enterprise manager[控制台回回冈 常规 怕文件)操作)查看)工具①)窗口()帮助0)-6x 中中国影电Ⅹ食国米息自 〈新建存储过程 目 SQL Server:组 ‖存储过程32个项目 所有者 0Lsx企业管理器区|bmum)名称 所有者 日期 语法检查成功 白目 jxgl 文本山 关系图 新建存储过程 CREATE PROCEDURE multi AS declare @i int, @i int, @out varchar(80) 所有任务 6视图 dt verstar 存储过程 剪切〔) t vcsenal复制〔) 两;吗两 角色 dt valida册除①) 1.16/16 规则 国默认值 子at-setp 用户定义自 屈性 检查语法C 另存为模板⑤ 户定义n 帮助Q 取消 重命名当前选择 注意:在企业管理器中可以对已创建的存储过程,执行删除、重命名操作,也 可通过属性执行査看、修改存储过程等操作
9.1.2 存储过程的创建 (2)在文本框中输入代码后,如果单击“检查语法”按钮,可以对 输入的代码进行语法检查,如图9-3所示。连续单击前后两个 “确定”按钮,自动保存并返回“企业管理器”对话框2,从中 可以发现存储过程“multi”,如图9-4所示。 注意:在企业管理器中可以对已创建的存储过程,执行删除、重命名操作,也 可通过属性执行查看、修改存储过程等操作
912存储过程的创建 create procedure multi as declare @i int, @j int, @out varchar(80 set @i=1 while @i<=9 begin set @out =cast(@i as char(1))+) set @j=1 while @j<=@i begin set @out=@out+cast(@i as char(1)+*+cast(@jas char(1))+'='+cast(@i*@j as char(2))+space (2 set @j =@j+1 end print @out set @i=@i+1 end
9.1.2 存储过程的创建 create procedure multi as declare @i int,@j int,@out varchar(80) set @i=1 while @i<=9 begin set @out =cast(@i as char(1))+') ' set @j=1 while @j<=@i begin set @out=@out+cast(@i as char(1))+'*'+cast(@j as char(1))+'='+cast(@i*@j as char(2))+space(2) set @j=@j+1 end print @out set @i=@i+1 end
9.13存储过程的执行 在查询分析器中可直接使用存储过程的名字或使 用 execute语句执行存储过程。执行存储过程 的语法格式如下: [L exec [ ute 1] ●{[@返回状态值= ‘储过程名;分组编号]丨@存储过程名变量} [[@形式参数名称=]{实际参数值|@实际 参数变量[ outpu!| default…n] ●[ with recompile 说明:
9.1.3 存储过程的执行 在查询分析器中可直接使用存储过程的名字或使 用execute语句执行存储过程。执行存储过程 的语法格式如下: ⚫ [ [ exec [ ute ] ] ⚫ { [ @返回状态值 = ] ⚫ {存储过程名[;分组编号] | @存储过程名变量}} ⚫ [ [ @形式参数名称 = ] {实际参数值 | @实际 参数变量 [output] | [default]}][,...n ] ⚫ [ with recompile ] ⚫ 说明:
9.13存储过程的执行 (1) execute:执行存储过程的命令,该命令若是批处理 中的第一条,则可以省略。 (2)返回状态值:是一个可选的整型局部变量,保存存储 过程的返回状态。这个变量在用于 execute语句时,必 须已在批处理、存储过程或函数中声明过; (3)存储过程名:要调用的存储过程的名称; (4)@存储过程名变量:局部变量名,代表存储过程的名 称 (5)@形式参数名称:是指存储过程中已定义的形式参数 名称,使用时注意以下几点: 在使用格式“@形式参数名称=实际参数值|@实际参数 变量”时,形式参数名称及其实际参数值不一定按照 create procedure语句中定文的顺序出现。 在使用格式“实际参数值@实际参数变量”时,即省 略“@形式参数名称”,要求必须按顺序传递给 create procedure语句中定义的输入参数
9.1.3 存储过程的执行 (1)execute:执行存储过程的命令,该命令若是批处理 中的第一条,则可以省略。 (2)返回状态值:是一个可选的整型局部变量,保存存储 过程的返回状态。这个变量在用于execute语句时,必 须已在批处理、存储过程或函数中声明过; (3)存储过程名:要调用的存储过程的名称; (4)@存储过程名变量:局部变量名,代表存储过程的名 称; (5)@形式参数名称:是指存储过程中已定义的形式参数 名称,使用时注意以下几点: ⚫ 在使用格式“@形式参数名称=实际参数值 | @实际参数 变量”时,形式参数名称及其实际参数值不一定按照 create procedure语句中定义的顺序出现。 ⚫ 在使用格式“实际参数值 | @实际参数变量”时,即省 略“@形式参数名称”,要求必须按顺序传递给create procedure语句中定义的输入参数;
9.13存储过程的执行 (6)实际参数值:存储过程调用时传递给输入参数的值; (7)@实际参数变量:存储过程调用时传递给输入参数的实际参数变 其用法同(5),或者用来保存并返回输出参数的变量,此时 要配合 output选项 (8) output:表示@实际参数变量是用来保存并返回输出参数的变量 (9) default:表示调用存储过程时,使用存储过程定义时指定的默认 偵作为输入参数,实际週用可以省啗。当调用存储过程时,震要的 参数值没有事先定文默认值而指定了 default关键字,或缺少输入参 数值,都会出错; (10) with recompile:表示执行存储过程时强制重新编译,该选项不 能用于扩展存储过程。建议尽量少使用该选项,因为它消耗较多系 统资源; 例9-3】执行存储过程fact。 declare af as float execute fact-3, @f output -你输入了的3,请输入非负数 print execute fact 3, @f output 3的阶乘是:6
9.1.3 存储过程的执行 (6)实际参数值:存储过程调用时传递给输入参数的值; (7)@实际参数变量:存储过程调用时传递给输入参数的实际参数变 量,其用法同(5),或者用来保存并返回输出参数的变量,此时需 要配合output选项; (8)output:表示@实际参数变量是用来保存并返回输出参数的变量; (9)default:表示调用存储过程时,使用存储过程定义时指定的默认 值作为输入参数,实际调用可以省略。当调用存储过程时,需要的 参数值没有事先定义默认值而指定了default关键字,或缺少输入参 数值,都会出错; (10)with recompile:表示执行存储过程时强制重新编译,该选项不 能用于扩展存储过程。建议尽量少使用该选项,因为它消耗较多系 统资源; 【例9-3】 执行存储过程fact。 declare @f as float execute fact -3,@f output --你输入了的-3,请输入非负数 print'' execute fact 3,@f output --3的阶乘是:6