SQL存储过程知识总结

存储过程知识点总结,以Northwind数据库的Employees表为例 
1.没有参数的存储过程
create procedure usp_NoParameterSelect
as
begin
     select * from dbo.Employees
end

GO
--========================执行测试========================
EXECUTE usp_NoParameterSelect
GO

2.带参数的存储过程
create procedure usp_ParameterSelect
(
     @employeeID INT
)
as
begin
     select * from dbo.Employees
     where EmployeeID = @employeeID
end 
--=======================执行测试===========================
EXECUTE usp_ParameterSelect 1
GO

3.带多个参数的存储过程 
create procedure usp_MultiParameterSelect
     @employeeID INT,
     @employeeFirstName nvarchar(10)--要加上参数类型的长度
as
begin
     select * from dbo.Employees
     where EmployeeID = @employeeID
     and FirstName = @employeeFirstName
end
--========================执行测试===========================
EXECUTE usp_MultiParameterSelect 1,'Nancy' 
GO
 
4.output输出存储过程
create procedure usp_OutputSelect
@employeeID int ,
@employeeFirstName nvarchar(10) output
as
begin
     select @employeeFirstName = FirstName from Employees
     where EmployeeID = @employeeID
end
--=======================执行测试=============================
declare @name nvarchar(10)
execute usp_OutputSelect 1,@name output
select @name as name
GO

5.return输出存储过程
create procedure usp_ReturnSelect
     @employeeFirstName nvarchar(10)
AS
begin
     declare @employeeID INT
     select @employeeID = EmployeeID from Employees
     where FirstName = @employeeFirstName
     return @employeeID --**返回值必须是INT类型**
end
GO
--======================执行测试===============================
declare @employeeID INT
execute @employeeID = usp_ReturnSelect 'Nancy'
print @employeeID
GO
 
6.同时有output和return输出的存储过程
create procedure usp_OutputAndReturnSelect
     @firstName nvarchar(10),
     @lastName nvarchar(20) output
as
begin
     declare @employeeID INT;
     select @employeeID = EmployeeID,@lastName=LastName from Employees
     where FirstName = @firstName
     return @employeeID
end
GO
--======================执行测试================================
declare @employeeID INT
declare @lastName nvarchar(20)
execute @employeeID = usp_OutputAndReturnSelect 'Nancy',@lastName output
select @employeeID,@lastName 
 
posted @ 2014-01-12 11:52  frank_ly  阅读(262)  评论(0编辑  收藏  举报