存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。
语法:
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
-- Add the parameters for the stored procedure here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO
无参数存储过程:
--创建名为 GetUserInfo 的无参数存储过程
create procedure GetUserInfo
as
begin
select *
from User
end
--执行名为 GetUserInfo 的无参数存储过程
execute GetUserInfo
有参数的存储过程:
--创建名为 GetUserInfo_In 的有输入参数的存储过程
create procedure GetUserInfo_In
@UserId nvarchar(50)='1001' --设置默认值
as
begin
select * from User where UserId=@UserId
end
--执行名为 GetUserInfo_In 的有输入参数的存储过程(不传参数,即使用默认值)
execute GetUserInfo_In
--执行名为 GetUserInfo_In 的有输入参数的存储过程(传入参数)
execute GetUserInfo_In '1002'