是否可以从存储过程提供的结果集中隐藏动态查询?
我正在使用动态查询的@@rowcount
设置一个变量,用于确定是否运行另一个查询。
另一个查询由我无法更改的代码使用 - 因此我更改存储过程的原因。动态查询返回,因为存储过程中的第一个结果集现在是动态查询的结果,当前正在“破坏”调用代码。
提前致谢
答案 0 :(得分:2)
我设法通过将动态查询的结果插入临时表然后从临时表中检索rowcount来解决此问题。
-- Create query
declare @query nvarchar(max)
set @query = 'select ' + @entityname + 'id from ' + @entityname + ' where ' + @entityname + 'id = ' + cast(@entityid as nvarchar(100))
-- Insert into to temp table - no new result set displayed!
declare @tbl table (EntityID int not null primary key)
insert into @tbl
exec (@query)
-- Retrieve variable from temporary table
declare @count int
select @count = count(*) from @tbl
以上是我最终使用的代码。
答案 1 :(得分:0)
尝试包装动态查询,如下所示:
Set @query = 'SELECT COUNT(*) FROM (' + @Query + ') t'