- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用 NOEXEC ON
编写一些 T-SQL 查询时,我体验到了 SQL Server 的有趣行为,并且我很好奇为什么会发生这种情况。有时我只得到
Command(s) successfully.
消息如我所料,但有时我收到一条或多条
(0 row(s) affected)
消息。
我知道SET NOEXEC ON
命令编译查询但不执行它,所以我认为我不应该得到任何
(0 row(s) affected)
消息。
在第一个示例中,一切看起来都很正常。
SET NOEXEC ON
INSERT INTO Test (column1) VALUES ('etc')
结果:
Command(s) successfully.
但是在第二个例子中,我认为出了问题......
SET NOEXEC ON
DELETE FROM Test
结果:
(0 row(s) affected)
在第三个示例中,我使用了临时表:
CREATE TABLE #tmp (id INT IDENTITY(1, 1), idX INT)
SET NOEXEC ON
INSERT INTO #tmp (idX) VALUES (1)
DELETE FROM Test
SET NOEXEC OFF
DROP TABLE #tmp
结果:
(0 row(s) affected)
最后我只在查询中添加了 GO
,我认为结果很有趣
CREATE TABLE #tmp (id INT IDENTITY(1, 1), idX INT)
SET NOEXEC ON
GO
INSERT INTO #tmp (idX) VALUES (1)
DELETE FROM Test
SET NOEXEC OFF
DROP TABLE #tmp
结果:
(0 row(s) affected)
(0 row(s) affected)
最佳答案
尽管这可能不是您问题的答案:
但是当你删除
SET NOEXEC ON
DELETE FROM Test
如果您向 DELETE
语句添加一个 where 条件,例如 DELETE FROM Test WHERE COLUMN1='etc'
您将得到期望的结果...此行为可能是由于我们执行的 DDL 和 DML 语句所致。
我还分析了第三种情况,如果您在临时表中插入,它会给出(0 行受影响),但如果在某些数据库或永久表上完成相同的插入,则会给出(命令已成功完成)。 )
这里可能是因为临时表和永久表的原因。
对于第四个,您添加了 GO
:
GO
会执行相关的sql命令n次。
因此,如果您单独执行插入语句和删除语句都有一些返回值,并且 GO
会将它们添加到批处理计划中。
关于sql-server - "NOEXEC ON"中的有趣行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10536756/
如果要禁用特定的构建步骤,可以使用以下任一方法: do_configure[noexec] = "1" 要么 do_configure() { } 这些选择之间有什么区别?我听说使用noexec时可能
我有以下代码: -- start of code set noexec off declare @requiredVersion int declare @currentVersion int set
当我使用 NOEXEC ON 编写一些 T-SQL 查询时,我体验到了 SQL Server 的有趣行为,并且我很好奇为什么会发生这种情况。有时我只得到 Command(s) successfully
我的程序对已写入用户指定目录的二进制文件调用 exec()。如果目录驻留在使用“noexec”挂载的树中,则 exec() 将失败并返回 EACCES。 我不想使 exec() 失败,而是希望能够确定
我想知道 linux 内核命令行中这两个参数之间的区别: 不执行=关闭 鼻息 在这两种情况下,它都拒绝内核执行用户空间内存中的代码。但我看不出它们之间有任何区别。 dmesg 中的错误消息不同,但行为
在 SSMS 中执行以下操作时; if not exists (select * from sys.databases where name = 'SWFUAT') begin print '
我正在尝试在需要在 /tmp 上安装 noexec 的盒子上运行 android sdk。 我可以将 java tmp 指向另一个我可以执行的地方,但这会破坏警察要求在 tmp 中执行 noexec
我正在 Linux 中的 CherryPy 上运行自定义 Python 2.7.3 应用程序。当我使用/etc/init.d/中的服务脚本来启动或停止服务时,遇到了段错误 (SIGSEGV)。奇怪的是
我正在尝试将 Python 用于运行 Linux 的 Arm 处理器上的嵌入式应用程序(从 X86/Linux 交叉编译的 CPython 2.7.3)。在我开始保护设备以防止篡改之前,它一直运行良好
我有一个 SQL 脚本,可以根据某些条件更新数据库过程或更改表。如果过程或表在运行时不存在,脚本也应该工作(在这种情况下应该更新注释)。 在 MSSQL 中,我能够通过 NOEXEC 实现这一点,如下
我是一名优秀的程序员,十分优秀!