使用下面的语句执行存储过程GetVersionNumber会出错:
declare @P1 varchar(50)
set @P1=NULL
exec sp_executesql
N'exec GetVersionNumber', N'@HDID varchar(50),@Version varchar(50),@ReturnVersion varchar(50) output',
@HDID = '459545611', @Version = '4.36', @ReturnVersion = @P1 output
select @P1
错误描述:
Server: Msg 201, Level 16, State 3, Procedure GetVersionNumber, Line 0
Procedure 'GetVersionNumber' expects parameter '@HDID', which was not supplied
可参数@HDID明明在那里。
但使用下面的语句执行就没有错,可以得到正确结果,真是奇怪啊。莫非是Sql Server的Bug? 不幸的是我只能用上一种方法执行,应该是ADO.NET自动生成的。有没有办法?
declare @P1 varchar(50)
set @P1=NULL
exec GetVersionNumber @HDID = '459545611', @Version = '4.36', @ReturnVersion = @P1 output
select @P1
declare @P1 varchar(50)
set @P1=NULL
exec sp_executesql
N'exec GetVersionNumber', N'@HDID varchar(50),@Version varchar(50),@ReturnVersion varchar(50) output',
@HDID = '459545611', @Version = '4.36', @ReturnVersion = @P1 output
select @P1
错误描述:
Server: Msg 201, Level 16, State 3, Procedure GetVersionNumber, Line 0
Procedure 'GetVersionNumber' expects parameter '@HDID', which was not supplied
可参数@HDID明明在那里。
但使用下面的语句执行就没有错,可以得到正确结果,真是奇怪啊。莫非是Sql Server的Bug? 不幸的是我只能用上一种方法执行,应该是ADO.NET自动生成的。有没有办法?
declare @P1 varchar(50)
set @P1=NULL
exec GetVersionNumber @HDID = '459545611', @Version = '4.36', @ReturnVersion = @P1 output
select @P1