请大家帮忙,一个用变量为表名、字段名的存储过程不能返回结果,谢谢大家
有一个sqlserver存储过程如下:功能为根据某个编码返回值
ALTER PROCEDURE dbo.GetNameById
@sId varchar(20), --传入条件Id的值
@sCondition varchar(20), --匹配条件Id的对应字段名
@sSelTab varchar(50), --要查找的表名
@sSelName varchar(400), --要得到值的相关字段名
@@retName nvarchar(400) output --需要传回的@selName字段的值
AS
begin
declare @sql nvarchar(1000) --生成的sql语句
set @sql='select '+@@retName+'='+@sSelName+' From '+@sSelTab+' Where '+@sCondition+'='+@sId
exec sp_executesql @sql
--set @@retName = isnull(@@retName,'124')
end
RETURN
调用存储过程的时候没有返回值,而直接写成sql语句查询的时候,是有值的,是不是折段代码有问题?请大家帮忙看看,谢谢!
我调用的代码如下:
declare @xx varchar(400)
exec baseoper_getnamebyid '000000000011','tId','tTable','tName', @@retName = @xx output
print 'aa'+ @xx
结果没有任何参数,我在存储过程里最后加一句:set @@retName = isnull(@@retName,'124')
结果才显示为:aa124