使用 exec 中的动态 SQL - exec 终止所有用户会话

2024-02-11

环境:SQL Server 2005/2008

我想使用动态 SQL 终止特定数据库上的所有用户连接。我知道其他方法,例如将数据库模式更改为单一/离线等,但希望使用动态 SQL。

我试图避免游标、while 循环以及在执行动态 SQL 时使用任何变量。这是我使用 sysprocesses 的代码:

 
-- Construct KILL SQL
exec ('select ''kill '' + cast(spid as varchar(20)) + '';'' from sys.sysprocesses
    where spid NOT IN (@@spid)
    and spid > 50') 

现在构建单独的终止语句后,我想在不声明和使用变量的情况下执行,如下所示。我是否遗漏了某些内容,或者 exec 中的 exec 不起作用?

  
-- execute KILL SQL
exec ('exec (''select ''''kill '''' + cast(spid as varchar(20)) + '''';'''' from sys.sysprocesses
where spid NOT IN (@@spid)
and spid > 50'')')

我知道一种更好的方法来声明变量并按如下方式执行,但如果可以不使用变量,我希望上面的方法能够工作:

 
-- routine way of doing KILL
declare @dsql nvarchar(max)=''
select @dsql = 'kill ' + cast(spid as varchar(20)) + ';' from sys.sysprocesses
where spid NOT IN (@@spid)
and spid > 50
exec(@dsql)


您的所有解决方案都不仅限于一个数据库。您的代码杀死所有数据库中的所有用户会话。

declare @dsql nvarchar(max)=''
select @dsql = 'kill ' + cast(spid as varchar(20)) + ';' from sys.sysprocesses
where spid NOT IN (@@spid)
and spid > 50
AND dbid = <your database id>
exec(@dsql)

但是每个代码的所有这些终止选项的问题都是相同的: 在没有 AdminSession 的情况下将数据库设置为脱机不会杀死所有可靠的会话。我对此也没有解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 exec 中的动态 SQL - exec 终止所有用户会话 的相关文章

  • 如何使用 Windows 身份验证指定 Windows 用户从 ASP 连接到 MS SQL Server 数据库

    我已经尝试了一个多月的时间来将这里的 ASP 脚本连接到 SQL Server 数据库 但每次我使用这个连接字符串时 Data Source dbServer01 Initial Catalog POS123 Integrated Secu
  • SQL Join 列上类似于另一列[重复]

    这个问题在这里已经有答案了 可能的重复 mysql连接查询使用like https stackoverflow com questions 1930809 mysql join query using like 我想要进行连接 其中一列包含
  • 在c#中创建sql连接

    我是这个网站的新手 也是编程的新手 我目前正在通过销售点创建库存系统 它使用模态和非模态形式 我的问题是 我正在研究change password对话框必须连接到数据库才能覆盖密码字段 我使用的数据库是Microsoft SQL Serve
  • Oracle:如何获取刚刚插入的行的序列号?

    如何获取刚刚插入的行的序列号 插入 返回 declare s2 number begin insert into seqtest2 x values aaa returning seq into s2 dbms output put lin
  • 检查两个“select”是否相等

    有没有办法检查两个 非平凡的 选择是否等效 最初我希望两个选择之间有形式上的等价 但是答案在证明 sql 查询等价性 https stackoverflow com questions 56895 proving sql query equ
  • JDBC插入实数数组

    我试图将一个真实的数组插入到 postgresql 数组中 该表的定义是 String sqlTable CREATE TABLE IF NOT EXISTS ccmBlock sampleId INTEGER block REAL 插入内
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 获取带有计数的不同记录

    我有一张桌子personid and msg列 personid msg 1 msg1 2 msg2 2 msg3 3 msg4 1 msg2 我想得到总计msg对于每个personid 我正在尝试这个查询 select distinct
  • 是否有适用于 SQL Server Express 的 SQL Server Profiler? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 SQL Server Express 的 SQL Server Profiler 也许是开源的 或者也许只是一个可以帮助我查
  • 从 Getdate() 获取时间

    我想采取Getdate 结果 例如 2011 10 05 11 26 55 000 into 11 26 55 AM 我看过其他地方并发现 Select RIGHT CONVERT VARCHAR GETDATE 100 7 这给了我 11
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • SQL Server 数据库架构版本控制和更新

    对于我的应用程序 我必须支持更新方案 并且数据库可能会受到影响 我希望能够从旧版本更新到最新版本 而无需安装中间版本 例如 假设我有版本 A 最旧的版本 B 中间版本 和 C 新版本 我希望能够将版本 A 直接更新到版本 C 对于应用程序文
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 想要编写依赖于 SQL Server 表的所有对象的脚本

    查看依赖关系 显示依赖于 SQL Server 中的表的所有对象 现在 我如何使用 SSMS 在一个命令中编写所有这些对象的脚本 有没有免费的工具可以做到这一点 首先你可以尝试这个链接了解 SQL 依赖关系 http msdn micros
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装

随机推荐

  • 如何确定互补滤波器的参数alpha?

    我知道互补滤波器兼有LPF和HPF的功能 但我认为我对其背后原理的理解仍然不清楚 我对数字信号处理很陌生 也许一些非常基本的解释会有很大帮助 假设我有一个互补过滤器 如下所示 y a y 1 a x 然后我的参数a可以通过以下方式计算 a
  • 如何检查设备是否是Ipad mini [重复]

    这个问题在这里已经有答案了 可能的重复 处理 iPad Mini 屏幕尺寸 https stackoverflow com questions 13036745 dealing with ipad mini screen size 是否可以
  • 如何确定 matplotlib 正在使用哪个后端?

    无论是交互方式 例如从 Ipython 会话中 还是从脚本中 如何确定 matplotlib 正在使用哪个后端 Use the get backend https matplotlib org stable api matplotlib c
  • 当输入元素的宽度被指定时,如何强制自由 CSS 调整大小?

    我有一个简单的问题 文本输入元素指定了 2 个 CSS 属性 请参阅下面的代码
  • 如何在运行时设置 MVC 中选择列表的默认值

    我有一个视图 它循环遍历模型并以可编辑模式显示详细信息 模型值之一来自如下选择列表 if Model null for int i 0 i lt Model provider service dtls Count i tr td Html
  • 如何编写 Objective-C 完成块

    我遇到的情况是需要从视图控制器调用类方法 让它做它的事情 但只有在类方法完成后才执行一些操作 我认为我需要的是一个完成块 但如果我错了 请纠正我 情况如下 我使用 Parse com 作为我的应用程序后端 当用户注册帐户时 他们在弹出窗口中
  • 如何解决Python中的错误“模块'numpy'没有属性'float'”?

    我正在使用 NumPy 1 24 0 运行此示例代码行时 import numpy as np num np float 3 我收到此错误 Traceback most recent call last File
  • 有选择地为 CakePHP 中的某些操作启用 SSL

    我正在尝试仅对基于 CakePHP 的网站上的某些操作启用 SSL 我正在使用 requireSecure 执行此操作并重定向到https 网址 https url在相应的blackHoleCallback 中 为了降低服务器负载 我想重定
  • 将会话变量或自定义字段添加到 Elmah 错误日志表

    我想将我自己的会话变量添加到 elmah 错误日志表并显示它 我已经修改了源代码并将新字段添加到 Error cs 和其他字段中 但我不知道 但是当我将 HttpContext Current Session MyVar tostring
  • 由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options:> nosniff),资源被阻止

    文件结构 索引 js app set view engine ejs app use express static public app use bodyParser urlencoded extended true chat ejs h1
  • Java - 一种采用 vararg 并返回 arraylist 的方法?

    我对泛型并不完全满意 因此还没有找到解决方案 我有这三种方法 public static List
  • 如何在R中根据中心和半径绘制三维球体?

    如何通过提供中心点和半径在 R 中绘制球体 例如 这样的事情 sphere 3d center c 1 1 1 r 2 该图将出现在三维坐标系上 Try spheres3d in the rgl交互式绘图包 library rgl sphe
  • Invoke() 被阻塞

    我的应用程序 GUI 有时会停止重绘 有很多线程正在触发各种事件 例如计时器或网络数据就绪等 还有很多控件正在订阅这些事件 因此 所有事件处理程序都会玩 InvokeRequired Invoke 游戏 现在我发现当 GUI 冻结时 很多线
  • 如何修改 Visual Studio 2015 预定义宏?

    我正在尝试修改 Visual Studio 2015 中的预定义环境宏 具体来说 VC 包含路径 我可以看到它及其值 但无法修改它 我没有看到执行此操作的选项 您可以编辑此文件 C 程序文件 x86 MSBuild Microsoft Cp
  • 数组的地址与第一个元素的地址不同?

    据我所知数组的地址a是该数组的第一个元素的地址 void func int a cout lt lt address in func lt lt a lt lt endl cout lt lt GT lt lt a 0 lt lt endl
  • Rails:rspec 中 url 帮助程序的主机名错误

    Url 帮助程序 例如 root url 在应用程序控制器与 rspec 示例中返回不同的主机名 我已经成功地在我的 Rails 应用程序中设置了 url 助手的域 如下所示 class ApplicationController lt A
  • 导入 Windows Live 联系人

    我已经开始从实时导入联系人 现在我不知道微软在想什么 但他们真的把他们所做的一切都搞得太复杂了 对于我的应用程序来说 获取电话号码非常重要 事实上 非常重要的是 如果您没有电话号码 您的联系方式将被跳过 用我的方法我看不到任何电话号码 我以
  • 在内核空间中存储结构体数组,Linux

    我相信我可能有点过度思考这个问题 我的文件系统上有一个文本文件 我在启动时解析该文件并将结果存储到结构数组中 我需要将此数组从用户空间复制到内核空间 copy from user 并且必须让内核随时可以访问此数据 内核空间中的数据需要通过
  • 环境错误:Gmsh 版本必须 >= 2.0

    我是 fipy 的新手 所以如果我问一些应该显而易见的问题 请原谅我的无知 但我无法运行已经存在的 并且在其他机器上工作的 脚本 无法获取EnvironmentError Gmsh version must be gt 2 0 我可能在安装
  • 使用 exec 中的动态 SQL - exec 终止所有用户会话

    环境 SQL Server 2005 2008 我想使用动态 SQL 终止特定数据库上的所有用户连接 我知道其他方法 例如将数据库模式更改为单一 离线等 但希望使用动态 SQL 我试图避免游标 while 循环以及在执行动态 SQL 时使用