0
declare @value varchar(500)
declare @Whrcol varchar(500)
declare @Whrvalue varchar(500)
set @Whrcol='Product Cat3'
set @Whrvalue='IR DOME CAMERA'
set @value=('select [Table Name] 
             from tblProductsCatalog 
             where ['+ @Whrcol+ '] ='''+@Whrvalue+'''')
execute (@value)

次のステートメントで使用できるように、Executeステートメントによって返された値を保存したい

execute('select * from '+@value+ ' where IsActive =1')

しかし、私はエラーが発生しています。

どうすればいいですか?

私は数時間から試していますが、解決できません。

4

2 に答える 2

0

sp_executesql を使用します。

@value には nvarchar への変更が必要であることに注意してください。また、@value 変数を上書きする代わりに、戻り値を分離しました。

declare @value nvarchar(500)
declare @Whrcol varchar(500)
declare @Whrvalue varchar(500)
declare @returnValue varchar(500)  

set @Whrcol='Product Cat3'
set @Whrvalue='IR DOME CAMERA'
set @value='select TOP 1 @returnValue = [Table Name] 
             from tblProductsCatalog 
             where ['+ @Whrcol+ '] ='''+@Whrvalue+''''
exec sp_executesql @value, N'@returnValue varchar(500) output', @returnValue output

execute('select * from '+@returnValue+ ' where IsActive =1')
于 2013-03-05T13:55:45.513 に答える
0

この方法を試してください:

declare @value varchar(500)
declare @Whrcol varchar(500)
declare @Whrvalue varchar(500)
set @Whrcol='Product Cat3'
set @Whrvalue='IR DOME CAMERA'
execute('select @value = [Table Name] 
             from tblProductsCatalog 
             where ['+ @Whrcol+ '] ='''+@Whrvalue+'''')
execute('select * from '+@value+ ' where IsActive =1')
于 2013-03-05T11:23:23.713 に答える