【发布时间】:2019-09-17 21:45:29
【问题描述】:
WHILE @nxt < @rc
BEGIN
set @sql = (select Rec from DmsRec where row=@nxt)
use TestDB1
exec (@sql)
select @rc_child = @@ROWCOUNT
use MyTempDB
if @rc_child = 0
begin
insert into DMSResults
select DOCID from DmsRec where row=@nxt
end
set @nxt = @nxt + 1
END
我的问题是如何隐藏执行命令的显示结果。 (使用 Sql Server 2008r2) 以上查询是完整程序的一小部分。
访问多个条件、值和多个数据库我生成一个选择语句并存储在 Rec Field 到表 DmsRec
生成 require Select.... 语句后,我将其存储到表 DmsRec 中。
例如SELECT ACCD FROM M_TABLE WHERE 1=1 and ACCD='0034422'。
这个选择语句作为值存储在表 DmsRec 中 想在不同的数据库中执行。
所以我使用use 命令并更改数据库名称,访问记录集。
如果执行的 sql (return 0 row) 则运行 insert 命令,该命令在不同的数据库中执行。
有了这个我才知道插入 docid 到 DMSResults 是那些 master 不是 avalialbel 的事务。
完美运行,但不能隐藏执行命令的显示记录。
我运行exec(@sql) 只是为了检查它是否返回任何行。
并将行计数值存储到变量中。
但不想在网格中显示记录(同时结果 {effected rows} 应该存储在变量中)。
无需手动更改 SSMS 中的选项,即 Tools/Options,Query Results/SQL Server/Results to XX,勾选“Discard results after query executions”
【问题讨论】:
-
关闭无计数
-
不,先生,我已经给出了....但是 exec(@sql) 在 Result Pan Grid 中显示记录。我只想显示消息,例如(1 行受影响)但没有结果。
标签: sql sql-server tsql