我很好奇SQL查询的逻辑查询处理阶段。
对于SELECT
个查询,逻辑查询处理阶段顺序为:
INSERT
,UPDATE
和DELETE
的订单是什么?
答案 0 :(得分:1)
如果您想知道实际的查询处理顺序是什么,请查看执行计划。这将逐步告诉您SQL Server正在做什么。
https://technet.microsoft.com/en-us/library/ms178071(v=sql.105).aspx
答案 1 :(得分:0)
SQL Server:Source
答案 2 :(得分:0)
我有同样的问题,在互联网上找不到答案。 所以我试图从逻辑上得出答案。 这是一个简单的UPDATE语句(表的别名为a):
UPDATE tbl_employees a
SET a.Name = 'Anna'
WHERE a.Id = 122;
显然,在识别表之前是否可以执行SET和WHERE,因此UPDATE必须是第一个逻辑步骤。证明:别名正在运行(在Microsoft Access中)。
在应用SET语句之前,需要知道要应用它的记录。所以WHERE必须作为第二个逻辑步骤(省略WHERE将改变表中的所有记录)
在WHERE过滤的记录集上应用SET语句必须是第三步。
总结一下,逻辑处理顺序必须是:
任何其他顺序似乎都是荒谬的(您可以假设其他任何顺序吗?)。
再一次,它是我自己的逻辑推导。我不确定。我会批评任何链接到严重的互联网资源。