T-SQL :: 如何让查询杀死自己

问题描述

使用 help of a user,我创建了一个 sql Server 代理作业,它每 10 分钟跟踪我网络上的几台服务器以收集所有连接:

USE [msdb];
GO

DECLARE @ServerName varchar(50),@Dynamicsql NVARCHAR(MAX)
DECLARE @myTableVariable TABLE (id INT,ServerName varchar(50))
insert into @myTableVariable values(1,'TESLABsql01T'),(2,'TESLABsql02T')
-- select * from @myTableVariable           -- use thisfor test


Declare VarCursor cursor for
Select ServerName from @myTableVariable
Open VarCursor
FETCH NEXT FROM VarCursor INTO @ServerName
WHILE @@FETCH_STATUS = 0 
BEGIN
    SET @Dynamicsql='
    INSERT INTO [msdb].[dbo].[ConnectionCounts_Remote]
    SELECT ''' + @ServerName + ''' AS [ServerName],NAME AS DatabaseName,COUNT(STATUS) AS [NumberOfConnections],GETDATE() AS [TimeStamp],hostname,program_name,loginame
    FROM '+@ServerName+'.master.sys.databases sd
    LEFT JOIN '+@ServerName+'.master.sys.sysprocesses sp ON sd.database_id = sp.dbid
    WHERE database_id NOT BETWEEN 1 AND 4
    GROUP BY NAME,loginame'
    

    EXEC (@Dynamicsql)

    FETCH NEXT FROM VarCursor INTO @ServerName
END
CLOSE VarCursor
DEALLOCATE VarCursor

如此简单又如此美妙,查询每 10 分钟连接一次 TESLABsql01TTESLABsql02T

问题是,在这些远程服务器上,如果我执行 sp_who2,我仍然可以将用户连接为 DORMANT。 所以这意味着我的服务器每 10 分钟跟踪一次这些服务器,但连接保持不变。

如何不从远程服务器而是从执行 sql 代理作业的本地服务器终止该连接?

基本上,我正在尝试创建一个在执行后自行终止的查询

欢迎提出任何建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...