为什么 OUTPUT INTO 子句的目标不能是视图?

tus*_*eau 5 sql-server-2008 sql-server t-sql

这是我的声明:

DELETE FROM table1 OUTPUT deleted.col1,deleted.col2 INTO view1;

它给了我这个错误:

OUTPUT INTO 子句的目标“view1”不能是视图或公用表表达式。

该视图简单且可更新。为什么我不能使用 OUTPUT 子句插入可更新视图?

Mar*_*ian 5

来自 MSDN -输出条款

“以下语句不支持 OUTPUT 子句:

  • 引用本地分区视图、分布式分区视图或远程表的 DML 语句。
  • 包含 EXECUTE 语句的 INSERT 语句。
  • 当数据库兼容级别设置为 100 时,OUTPUT 子句中不允许使用全文谓词。
  • OUTPUT INTO 子句不能用于插入视图或行集函数。
  • 如果用户定义函数包含以表为目标的 OUTPUT INTO 子句,则无法创建该函数。”