基本语法
1.创建存储过程的基本语法模板
if (exists (select * from sys.objects where name = 'pro_name')) drop proc pro_name go create proc pro_name @param_name param_type [=default_value] as begin sql语句 end
注意:[]
表示非必写内容。sys.objects
存储的是本数据库中的信息,不仅仅存储表名,还有存储过程名 、视图名、触发器等等。
例如:
if (exists (select * from sys.objects where name = 'USP_GetAllUser')) drop proc USP_GetAllUser go create proc USP_GetAllUser @UserId int =1 as begin select * from UserInfo where Id=@UserId end
注意:SQL Server
实用工具将 GO
解释为应将当前的Transact-SQL
批处理语句发送给 SQL Server
的信号。当前批处理语句是自上一 GO
命令后输入的所有语句,若是第一条 GO
命令,则是从特殊会话或脚本的开始处到这条GO
命令之间的所有语句。
2.调用方法
exec dbo.USP_GetAllUser 2;
注意:一般在执行存储过程是,最好加上架构名称,例如 dbo.USP_GetAllUser
这样可以可以减少不必要的系统开销,提高性能。 因为如果在存储过程名称前面没有加上架构名称,SQL SERVER
首先会从当前数据库sys schema
(系统架构)开始查找,如果没有找到,则会去其它schema
查找,最后在dbo
架构(系统管理员架构)里面查找。
3.查看本数据库中存在的存储过程
依次展开数据库、可编程性、存储过程,即可看到已创建的存储过程。
4.修改存储过程
alter proc proc_name as sql语句