INSERT OVER语句?

时间:2011-03-28 14:18:26

标签: sql-server sql-server-2008

之间有什么区别
INSERT INTO table VALUES (values)

INSERT OVER table VALUES (values)

5 个答案:

答案 0 :(得分:8)

在所有保留关键字中,只有INTOOVER有效。

SQL:2003提及OVERRIDING关键字以覆盖身份(目前仅由DB2支持)

可能SQL Server暂时解析它,但实际上并没有实现。

生成的计划相同,ParameterizedText扩展为INSERT INTO

对于2008R2,答案是这样的:

没有区别,除了INSERT OVER已经浪费了大约50个工作时间的大多数好奇的开发者,还有更多的东西

答案 1 :(得分:4)

Microsoft的人say

  

感谢您报告此问题。我们   继续识别OVER关键字   以及INTO关键字(带有   INSERT语句中的相同含义)   提供向后兼容性   以前版本的SQL Server。   这不应该出现任何问题   用于应用程序开发。

      Eugene Zabokritski,SQL Engine

答案 2 :(得分:2)

根据这个页面:

http://msdn.microsoft.com/en-us/library/ms174335.aspx

INSERT OVER不是定义的语法树的一部分。因此,即使它有效,它可能也不会得到微软的正式支持。

答案 3 :(得分:0)

据推测,INSERT OVER应该覆盖表中的现有行。为此你实际上会使用

UPDATE <table> SET <field=value, field2=value2> WHERE <condition to pinpoint row>

答案 4 :(得分:0)

为复活死线程道歉,但这显示了谷歌搜索INSERT OVER的顶部附近。我希望在这里找到一个更好的解释/示例,但这个链接作为一个起点做得不错。如果您正在寻找有关INSERT OVER DML语句的信息(如合并命令),请查看以下链接:https://decipherinfosys.wordpress.com/2007/11/28/sql-server-2008-insert-over-a-dml-statement/