我已经在MS SQL中使用T-SQL已有一段时间了,无论何时我必须将数据插入表中时,我都倾向于使用语法:
INSERT INTO myTable <something here>
我知道关键字INTO
在这里是可选的,我不必使用它,但是在我的情况下它逐渐成为一种习惯。
我的问题是:
- 使用
INSERT
语法vs有什么含义INSERT INTO
吗? - 哪一个完全符合标准?
- 它们在SQL标准的其他实现中均有效吗?
Answers:
它们是同一件事,INTO
在T-SQL中是完全可选的(其他SQL方言可能有所不同)。
与其他答案相反,我认为使用它会损害可读性INTO
。
我认为这是一个概念性的事情:据我所知,我没有在名为“ Customer”的表中插入行,而是在插入Customer。(这与我使用单数而不是复数命名表的事实有关)。
如果您遵循第一个概念,INSERT INTO Customer
很可能会为您“感觉正确”。
如果您遵循第二个概念,则很可能INSERT Customer
适合您。
我从这个问题中学到的一课是,您应该始终保持一致!如果您使用INSERT INTO,也不要使用INSERT。如果您不这样做,某些程序员可能会再次询问相同的问题。
这是我的另一个相关示例案例:我有机会在MS SQL 2005中更新一个非常长的存储过程。问题是,太多数据被插入到结果表中。我必须找出数据的来源。我试图找出在哪里添加了新记录。在SP的开始部分,我看到了几个INSERT INTO。然后,我尝试查找“ INSERT INTO”并进行了更新,但是我错过了仅使用“ INSERT”的地方。那个实际上在某些列中插入了4k +行的空数据!当然,我应该只搜索INSERT。但是,那件事发生在我身上。我责怪以前的程序员IDIOT :) :)