之间有什么区别
INSERT INTO table VALUES (values)
和
INSERT OVER table VALUES (values)
答案 0 :(得分:8)
在所有保留关键字中,只有INTO
和OVER
有效。
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/