存储过程与表值函数的OUTPUT子句

wom*_*omp 2 t-sql sql-server stored-procedures sql-server-2008 output-clause

我正在攻读MCTS 70-433"数据库设计"证书,在我正在研究的文本中,其中一个自测有这个问题.

您有一个名为Get_NewProducts的存储过程.您希望将此存储过程的结果插入到Production.Product表中,并使用OUTPUT子句输出INSERTED.*值.做这个的最好方式是什么?

有四种可能的答案.前三个选项是" INSERT ... OUTPUT ... EXECUTE Get_NewProducts "语句的所有变体.第四个选择D简单地说"将存储过程重写为表值函数".

D是正确的答案.我不太明白为什么,文中没有任何内容可以解释它.有人有任何见解吗?

Cha*_*ana 5

好吧,来自msdn:

"引用本地分区视图,分布式分区视图或远程表的DML语句或包含execute_statement的INSERT语句不支持OUTPUT子句."