sql server 存储过程

来源:百度知道 编辑:UC知道 时间:2024/06/05 03:31:42
create proc proc_test2
@orderid int,
@lastname nvarchar(20) output
as
select @lastname=lastname
from employees,orders
where orderid=@orderid and employees.EmployeeID=orders.EmployeeID

这个存储过程的的执行语句怎么写?
exec proc_test2 '10249'这个执行语句不能用
老是提示:服务器: 消息 201,级别 16,状态 3,过程 proc_test2,行 0
过程 'proc_test2' 需要参数 '@lastname',但未提供该参数。

谢谢

@orderid int, 是输入参数
@lastname nvarchar(20) output 是输出参数
你调用的使用要定义一个输出参数,并且要输入个输入参数
大概是这样的1是输入参数!根据orderid的值来输入@s是输出参数

declare @s nvarchar(20)
exec proc_test2 @orderid=1 , @s output
print @s

最后加上一句

return @lastname

存储过程需要改动一下
create proc proc_test2
@orderid int,
@lastname nvarchar(20) output
as
begin
declare @templastname nvarchar(20)
select @templastname=lastname
from employees,orders
where orderid=@orderid and employees.EmployeeID=orders.EmployeeID
set @lastname=@templastname
end

然后执行
DECLARE @return_value nvarchar(20),
@orderid int

EXEC @return_value = [dbo].[proc_test2]
@orderid = 10249,
@lastname = @lastname OUTPUT

SELECT 'Return Value' = @return_value