图8-8 (3)存储过程创建成功后,输入如下T-SQL语句,单击“执行”按钮,执行已经创建的存储过程getstudent_3,执行结果如图8-9所示。 图8-9 3. 查看存储过程 (1)使用Mircrosoft SQL Server 2005 Management Studio查看用户创建存储过程。 在使用SQL Server Management Studio中,展开指定的服务器和数据库,选择展开“可编程性”│“存储过程”节点,然后在要查看的存储过程名称上单击鼠标右键。从弹出的快捷菜单中选择“编写存储过程脚本为”│“CREATE到”│“新查询编辑器”窗口命令,即可看到存储过程的源代码。 (2)使用系统存储过程来查看用户创建的存储过程 可供使用的系统存储过程及语法格式如下: ·sp_help,用于显示存储过程的参数机器数据类型,其语法为: sp_help[[@objname=]name],参数name为要查看的存储过程的名称。 ·sp_helptext,用于显示存储过程的代码,其语法为: sp_helptext[[@objname=]name],参数name为要查看的存储过程的名称。 ·sp_depends,用于显示和存储过程相关的数据库对象,其语法为: sp_depends[[@objname=]’object’,参数object为要查看依赖关系的存储过程的名称。 ·sp_stored_procedurse,用于返回当前数据库中的存储过程列表,其语法为: sp_stored_procedurse[[@sp_name=]’name’] [,[@sp_owner=]’owner’,] [,[@sp_qualifier=]’qualifier’] 其中[@sp_name=]’name’用于制定返回目录信息的过程名;[@sp_owner=]’owner’用于指定存储过程的所有者的名称;[@sp_qualifier=]’qualifier’用于指定过程限定符的名称。 4. 修改存储过程 存储过程可以根据用户的要求或基表定义的改变而改变。可以使用ALTER PROCEDURE语句修改已经存在的存储过程。修改存储过程与删除和重建存储过程不同,其特点是保持存储过程的权限不发生变化,其主要语法格式如下: ALTER PROCEDURE procedure_name[;number] [{parameter data_type} [VARYING][=defualt][ OUTPUT][,…n] AS Sql_statement[…n] [WITH {PECOMPILE│ENCRYPTION│RECOMPILE,ENCRYPTION}] [FOR REPLICATION 当使用ALTER PROCEDURE语句时,如果在ALTER PROCEDURE语句中使用或参数,那么在ALTER PROCEDURE语句中也应该使用这些参数。每次只能修改一个存储过程。存储过程的创建者、db_owner和db_ddladmin的成员拥有执行ALTER PROCEDURE语句的许可,其他用户不能呢个使用。需要注意的是,用ALTER PROCEDURE更改权限和启动属性保持不变。 另外使用SQL Server Management Studio也可以很方便地修改存储过程的定义,早SQL Server Management Studio中,展开指定的服务器和数据库,选择并展开“可编程性”│“存储过程”节点,选择要修改的存储过程,单击鼠标右键,在弹出的快捷菜单中选择“修改”命令,打开修改存储过程的窗口,在该窗口中可以直接修改定义该存储过程的T-SQL语句,然后单击“执行”按钮,执行该存储过程的修改。 5. 重命名和删除存储过程 (1)重命名存储过程 修改存储过程的名称可以使用系统存储过程sp_rename,其语法格式如下: sp_rename[@objname=]’object_name’,[‘object’_type] 另外,通过SQL Server Management Studio也可以修改存储过程的名称,在SQL Server Management Studio中,在要操作的存储过程名称上单击鼠标右键,从弹出的快捷菜单中选择“重命名”命令,当存储过程名称变成可输入状态时,直接修改该存储过程的名称即可。 (2)删除存储过程 删除存储过程可以使用T-SQL语句中的DROP命令,DROP命令可以将一个或多个存储过程从当前数据库中删除,其语法过程如下: DROP PROCEDURE procedure_name[…n] 另外,通过SQL Server Management Studio也可以很方便地删除存储过程。在SQL Server Management Studio中,在要删除的存储过程上单击鼠标右键,从弹出的快捷菜单中选择“删除”命令,打开“删除对象”对话框,选中该存储过程,然后删除即可。 例子: 使用SQL命令窗口创建存储过程: 为sc表创建查询学号,课程号,成绩的存储过程,不带参数: 为course表创建查询课程号,课程名的存储过程,其中课程号作为参数: 执行存储过程 (1)使用对象资源管理器:在建立的存储过程名上点击右键选择执行,执行后会自动生成代码,代码和结果如下: (2)使用T-SQL语句执行存储过程:带参数和不带参数的 修改存储过程 (1)使用对象资源管理器:在建立的存储过程名上点击右键选择修改,修改代码。 (2)使用T-SQL语句:将pro_sc存储过程增加sno升序排列
实验八数据库的创建和使用过程



