有人可以解释一下为什么第一条语句将值插入数据库而第二条语句不插入值。
服务器是SQL Server 2014
第一句话:
SET PARSEONLY ON;
go
Insert Into DKO
(AUF_NR) values (42);
--go
SET PARSEONLY OFF;
go
Select top 10 auf_nr from dko where AUF_NR = 42
第二条陈述:
SET PARSEONLY ON;
go
Insert Into DKO
(AUF_NR) values (42);
go
SET PARSEONLY OFF;
go
Select top 10 auf_nr from dko where AUF_NR = 42
这两个语句之间的唯一区别是插入语句末尾的go关键字。
最佳答案
从MSDN“ SET PARSEONLY的设置是在解析时而不是在执行或运行时设置的。”要记住的重要一点是,GO(在一行的开始处是自己的)是批处理分隔符。
在第一个示例中,第一个批处理将PARSEONLY设置为ON,第二个批处理将其关闭并执行INSERT语句。在第二个示例中,第一个批处理将其打开,第二个批处理是仅分析的INSERT语句,第三个批处理将其关闭。
关于sql-server - 即使SET PARSEONLY设置为ON,SQL Server也会插入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37792890/