我看到使用CTE v / s临时表获得了巨大的性能提升。目前我有:
DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
我想在这里使用CTE。有可能吗?
答案 0 :(得分:4)
不,您无法在INSERT
中使用CTE_query_definition
语句:
指定SELECT语句,其结果集填充公共 表格。必须使用CTE_query_definition的SELECT语句 满足与创建视图相同的要求,但CTE不能 定义另一个CTE。有关更多信息,请参阅“备注”部分和 CREATE VIEW(Transact-SQL)。
如果有多个CTE_query_definition 如果已定义,则查询定义必须由其中一个集合连接 运营商:UNION ALL,UNION,EXCEPT或INTERSECT。