五、SQLSERVER存储过程
参考:
https://blog.csdn.net/chonbi/article/details/104824449
https://www.cnblogs.com/DarknessHover/articles/15607274.html
https://www.cnblogs.com/dmhp/p/5291106.html
常用的系统存储过程
exec sp_databases; --查看数据库 exec sp_tables; --查看表 exec sp_columns student;--查看列 exec sp_helpIndex student;--查看索引 exec sp_helpconstraint student;--约束 exec sp_stored_procedures; exec sp_helptext 'sp_stored_procedures';--查看存储过程创建、定义语句 exec sp_rename student, stuInfo;--修改表、索引、列的名称 exec sp_renamedb myDB, myDB2;--更改数据库名称 exec sp_defaultdb 'master', 'myDB';--更改登录名的默认数据库 exec sp_helpdb;--数据库帮助,查询数据库信息 exec sp_helpdb master; exec sp_stored_procedures 列出当前环境中的所有存储过程 exec sp_password 添加或修改登录账户的密码
自定义存储过程
参考:https://www.yiibai.com/sqlserver/sql-server-stored-procedures.html#article-start
1、创建存储过程
CREATE PROCEDURE --存储程序名称(--参数)
AS
--T-SQL语句
示例:无返回值
CREATE PROCEDURE sp_GetEmployeeId(@employeeid int) AS SELECT orderid , customerid FROM orders WHERE employeeid = @employeeid
示例二:有返回值
CREATE PROCEDURE sp_Orders @ordercount INT = 0 OUTPUT AS SELECT @ordercount = 1 return @ordercount
调用返回值:
DECLARE @ordercount INT --声明一个变量 EXECUTE @ordercount= sp_Orders --使用变量来接收 return回来的值 SELECT @ordercount
示例三:带OUTPUT参数的存储过程
CREATE PROCEDURE p_2 @str NVARCHAR(20)=NULL OUTPUT,@int INT=NULL OUTPUT AS SET @str='say hi'; SET @int =1024; DECLARE @p1 NVARCHAR(20),@p2 INT --声明两个变量 --执行 EXECUTE p_2 @p1 OUTPUT,@p2 OUTPUT --变量后有OUTPUT SELECT @p1,@p2 --结果 ------------------------ (无列名) (无列名) say hi 1024 --执行 EXECUTE p_2 @p1 ,@p2 --注意这里没有OUTPUT SELECT @p1,@p2 --结果 ----------------------- (无列名) (无列名) NULL NULL
2、修改存储过程
ALTER PROCEDURE --存储程序名称 --参数 AS --T-SQL语句
3、查看存储过程
execute sp_helptext --存储过程名称
4、重命名存储过程
EXECUTE sp_rename --需要改的存储过程名称 --改后的存储过程名称
5、调用存储过程
EXECUTE 存储过程名称 参数
6、删除存储过程
DROP PROCEDURE proName