没看明白这句报错的意思

Greentea107 2009-03-19 10:05:40
我写了一个存储过程,内容如下:
create proc AddCustomer
@Name nvarchar(50),
@Sex nvarchar,
@IDType nvarchar(50),
@IDNumber nvarchar(50),
@Desposit money,
@Phone nvarchar(50),
@Address nvarchar(50),
@Desource nvarchar(50),
@Remark nvarchar(50),
@Result int output
as
if exists(select * from PersonIdent where PType=@IDType and PNumber=@IDNumber)
begin
set @Result = -1;
return @Result;
end
insert into PersonIdent (PType,PNumber) values(@IDType,@IDNumber)
insert into ClientInfo (CName,CSex,CPID,CDeposit,CPhone,CAddress,CDesource,CRemark)
values(@Name,@Sex,@@identity,@Desposit,@Phone,@Address,@Desource,@Remark)
set @Result = @@rowcount
return @Result
go

然后运行
declare @Result int
exec AddCustomer
@Name='Tom',
@Sex='男',
@IDType='身份证',
@IDNumber='9xifs',
@Desposit=123.22,
@Phone='64646464646',
@Address='9911199',
@Desource='china',
@Remark='rerererere',
@Result output
报错信息如下:
消息 119,级别 15,状态 1,第 2 行
必须传递参数 10,并以 '@name = value' 的形式传递后续的参数。一旦使用了 '@name = value' 形式之后,所有后续的参数就必须以 '@name = value' 的形式传递。

这是哪里错了?
...全文
98 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
stg609 2009-03-19
  • 打赏
  • 举报
回复
declare @Result int
exec AddCustomer 'Tom', '男', '身份证', '9xifs', 123.22, '64646464646', '9911199', 'china', 'rerererere',@Result output
stg609 2009-03-19
  • 打赏
  • 举报
回复
因为你传递参数的形式是"@参数名=参数值"这种形式,但是你最后一个@result output却不是这种形式,所以报错

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧