发布网友 发布时间:2022-04-21 19:02
共2个回答
热心网友 时间:2024-02-21 01:20
存储过程是在SQL服务器上存储的已经过编译的SQL语句组.存储过程在第一次执行时要进行语法检查和编译,编译好的版本存储在过程高速缓存中供后续调用.存储过程可用于安全机制.假设某用户没有对指定表或视图的使用权限,但它具有使用存储过程的权限,通过执行存储过程,用户仍可以获得对存储过程中的表或试图的使用权.
(1)创建存储过程和调用存储过程:
创建语法:
CREATE PROCEDURE<过程名>[:版本号]
[@<参数名><参数类型>[=<默认值>][OUTPUT]……]
[WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]
AS <SQL语句组>
其中:版本号是可选的整数,它用于将有相同名字的存储过程编为不同的组.在执行时可选版本,但创建时一次只能创建一个版本;OUTPUT选项用于给调用者的值;RECOMPILE为重编译选项.它要求每次执行都要进行对过程重编译和优化,并创建新的查询计划;ENCYPTION为加密选项;
例如:建立并调用一个不带参数的存储过程如下:
CREATE PROCEDURE 全部学生
AS SELECT * FROM 学生
GO
EXEC 全部学生
建立并调用一个带参数的存储过程如下:
CREATE PROCEDURE 学生查询1
@SNAME VARCHAR(8),@SDEPT VARCHAR(20)
AS SELECT * FROM 学生 WHERE 姓名=@SNAME AND 所在系=@SDEPT
GO
EXEC 学生查询1 '张三','计算机系'
或: EXEC 学生查询1 @SNAME='张三',@SDEPT='计算机系'
(2)删除存储过程:
DROP PROCEDURE<存储过程名组>
热心网友 时间:2024-02-21 01:21
你可以使用
EXEC 存储过程名 参数1,参数2……
这样来运行,如果没有参数,则直接
EXEC 存储过程名
就可以运行了