众所周知,CTE 是在 SQL Server 2005 中引入的,并且人群变得疯狂。
我有一个案例,我将大量静态数据插入到表中。我想知道的是以下哪个更快,以及我应该注意哪些其他因素。
INSERT INTO MyTable (MyField) VALUES ('Hello')
INSERT INTO MyTable (MyField) VALUES ('World')
或者
WITH MyCTE(Field1) AS (SELECT 'Hello' UNION SELECT 'World')
INSERT INTO MyTable (MyField) SELECT Field1 FROM MyCTE
我有一种不舒服的感觉,答案将取决于诸如触发器存在的东西MyTable
……
(另外,我知道并且不在乎BULK INSERT
CSV 和任何数量的其他方法客观上是更快更好的插入静态数据的方法。我特别想知道我应该注意的关于 CTE 与多个插入的问题。 )