create procedure xghs8 @hs int,@x# int as
if exists (select* from jsptab where sx#=@x#)
begin
update jsptab set hs=@hs where sx#=@x#
print '修改成功'
end
else
print '无此货号,修改失败'--@x#带一个参数就正确,如果多个参数就不行,要怎么写呢?
exec xghs2 1001,1001001
---比如以下这样就会报错,@x#有时候只用个参数,有时候会用多个参数
exec xghs2 1001,1001001,1001002
服务器: 消息 8144,级别 16,状态 2,过程 xghs2,行 0
为过程或函数 xghs2 指定的参数太多。
if exists (select* from jsptab where sx#=@x#)
begin
update jsptab set hs=@hs where sx#=@x#
print '修改成功'
end
else
print '无此货号,修改失败'--@x#带一个参数就正确,如果多个参数就不行,要怎么写呢?
exec xghs2 1001,1001001
---比如以下这样就会报错,@x#有时候只用个参数,有时候会用多个参数
exec xghs2 1001,1001001,1001002
服务器: 消息 8144,级别 16,状态 2,过程 xghs2,行 0
为过程或函数 xghs2 指定的参数太多。
create procedure xghs8 @hs int,@x# varchar(1000)
as
declare @sql varchar(3000);
declare @count int;set @sql = 'select @count = count(*) from jsptab where sx# in ('+ @x# +')';
exec sp_executesql @sql,'@count int output',@count output;if @count <> 0
begin
set @sql = 'update jsptab set hs=' + cast(@hs as varchar) +
' where sx# in (' + @x# + ')';
exec(@sql);
print '修改成功'
endelse
print '无此货号,修改失败'
go--@x#带一个参数就正确,如果多个参数就不行,要怎么写呢?
exec xghs2 1001,'1001001'---比如以下这样就会报错,@x#有时候只用个参数,有时候会用多个参数
exec xghs2 1001,'1001001,1001002'
服务器: 消息 8144,级别 16,状态 2,过程 xghs88,行 0
为过程或函数 xghs88 指定的参数太多。
drop procedure xghs8
gocreate procedure xghs8 @hs int,@x# varchar(500)
as
declare @sql nvarchar(3000);
declare @count int;set @sql = 'select @count = count(*) from jsptab where sx# in ('+ @x# +')';
exec sp_executesql @sql,N'@count int output',@count output;if @count <> 0
begin
set @sql = 'update jsptab set hs=' + cast(@hs as varchar) +
' where sx# in (' + @x# + ')';
exec(@sql);
print '修改成功'
endelse
print '无此货号,修改失败'
go
--@x#带一个参数就正确,如果多个参数就不行,要怎么写呢?
exec xghs8 1001,'100'---比如以下这样就会报错,@x#有时候只用个参数,有时候会用多个参数
exec xghs8 1001,'1001001,1001002'
服务器: 消息 8144,级别 16,状态 2,过程 xghs88,行 0
为过程或函数 xghs88 指定的参数太多。
OK,谢谢
服务器: 消息 8144,级别 16,状态 2,过程 xghs88,行 0
为过程或函数 xghs88 指定的参数太多。
OK,谢谢现在能还报错吗?
服务器: 消息 8144,级别 16,状态 2,过程 xghs88,行 0
为过程或函数 xghs88 指定的参数太多。
OK,谢谢现在能还报错吗?
不报错了,谢谢!
服务器: 消息 8144,级别 16,状态 2,过程 xghs88,行 0
为过程或函数 xghs88 指定的参数太多。
OK,谢谢现在能还报错吗?
不报错了,谢谢!呵呵,那就好哈