sql-server - 有没有办法检查 NOEXEC 状态?
问题描述
我一直在寻找一段时间,找不到任何可以开始的东西。如果这是重复的,我深表歉意,但也许我在谷歌搜索时的关键字不是最好的。
我有一堆以 IF 开头的脚本,如果该 IF 为 True,则 NOEXEC 标志设置为 ON
像这样的东西
if TRUE
BEGIN
SET NOEXEC ON;
END
问题是当我在 NOEXEC 设置为 ON 后执行任何脚本时,它不会运行。我已经测试过了,如果我设置 NOEXEC OFF,其余的脚本运行没有问题。
server.ConnectionContext.ExecuteNonQuery(script)
我是否必须检查 NOEXEC 的状态,还是应该将其附加到所有脚本的开头?
谢谢大家
编辑:脚本示例以更好地解释问题
1º 脚本
select * from List
print'Done printing'
2º 脚本
SET NOEXEC ON;
select * from List
print'Won't print'
3º 脚本
select * from List
print'Done printing'
我的预期结果是在我的 FileInfoMessage 上有两条“完成打印”消息,但除非我执行 SET NOEXEC OFF,否则我只能从第一条消息中获得打印
解决方案
set noexec on
停止执行 SQL 命令,直到set noexec off
遇到 a。
如果有一个命令可以获取 noexec 的当前状态,它也不会执行,因为它会noexec
打开。如果它确实执行了,那将意味着 noexec 已关闭。
可以说,设计团队可以提出另一个“特殊”命令,绕过noexec on
状态并执行(就像这样set noexec off
做一样),为您提供noexec
. 据我所知,这样的命令不存在,所以虽然有一种查询当前SET
标志的方法,但没有用于 noexec 的方法。
你可以:
- 为每个脚本使用一个新的连接对象
noexec off
在每个脚本的末尾打开它- 执行一个 dummy
select 1
。如果你1
回来,noexec 就会关闭。
推荐阅读
- python - 如何在图像中找到垂直线?(Opencv and Python) 总垂直雪崩需要罚款
- javascript - 在 JQuery 中查找 div 中的图像
- git - Github post push hook
- sql - 累积计算 - 基于样本数据
- data-structures - 你如何实现一个有序的哈希表?
- html - 如何将外部 React 库添加到静态 HTML 页面
- windows - GreaseMonkey 上的徽章图标
- python - 索引数据框不返回正确的值,而是返回累积值?
- python - 你如何总结熊猫?
- javascript - 当我单击 evrywhere 时如何关闭 jquery 弹出窗口,除了它自己的弹出窗口