即使SET PARSEONLY设置为ON,SQL Server也会插入值

时间:2016-06-13 14:52:06

标签: sql-server sql-server-2014

有人可以解释为什么第一个语句将值插入数据库而第二个语句没有插入值。 服务器是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

两个语句之间的唯一区别是insert语句末尾的go关键字。

1 个答案:

答案 0 :(得分:1)

MSDN" SET PARSEONLY的设置在分析时设置,而不是在执行或运行时设置。"。需要记住的重要一点是GO(它在行的开头就是自己的)是批处理分隔符。

在第一个示例中,第一个批处理设置PARSEONLY ON,第二个批处理将其关闭并执行INSERT语句。在第二个示例中,第一个批处理将其打开,第二个批处理是仅解析的INSERT语句,第三个批处理将其关闭。