3

再会,

我想知道是否可以使用 INSERT-OUTPUT 语句为另一个外部 INSERT 语句提供值。这样,可以在单个语句中将值添加到实体表和交集表中 - 我希望我的措辞有效。例如:

INSERT INTO [#tblIntersect] ([Entity1ID], [Entity2ID])
VALUES
(
    INSERT INTO [#tblEntity1] ([Value])
    OUTPUT [inserted].[ID] AS [entity1ID], @entity2ID AS [entity2ID]
    VALUES ('One')
)

因此,内部 INSERT-OUTPUT 语句将向 table 添加一个新实体#tblEntity1。新实体的ID(设置为,IDENTITY(1, 1)然后将通过OUTPUT语句返回,以及一个静态值(我的代码中已经有),为外部INSERT语句提供两个值。

我认为可能的原因是内部INSERT-OUTPUT语句的执行无论如何都会返回一个表,并且这种输出通常可用于为INSERT语句提供值。

显然这个例子是行不通的;我希望这只是一个简单的语法问题。

提前感谢您的任何意见和建议。

4

1 回答 1

1

根据文档,您的要求是可能的。

假设 #tblIntersect 有两个匹配的 id 列,这应该可以工作

INSERT INTO [#tblEntity1] ([Value])
OUTPUT [inserted].[ID] AS [entity1ID], @entity2ID AS [entity2ID]
   INTO #tblIntersect
VALUES ('One')
于 2012-04-19T16:16:57.020 回答