繁体   English   中英

使用带有OUTPUT子句的公用表表达式

[英]Using a common table expression with an OUTPUT clause

我看到使用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。 可能吗?

不,你不能在CTE_query_definition使用INSERT语句:

指定SELECT语句,其结果集填充公用表表达式。 CTE_query_definition的SELECT语句必须满足与创建视图相同的要求,但CTE无法定义另一个CTE。 有关更多信息,请参阅“备注”部分和“CREATE VIEW”(Transact-SQL)。

如果定义了多个CTE_query_definition,则查询定义必须由以下集合运算符之一连接:UNION ALL,UNION,EXCEPT或INTERSECT。

CTE官方文件

CREATE VIEW官方文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM