美好的一天,
我想知道是否可以使用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语句将向表#tblEntity1
添加一个新实体。然后,新实体的ID
(设置为IDENTITY(1, 1)
将通过OUTPUT
语句返回,同时返回一个静态值(我的代码中已有),以提供两个实体外INSERT
语句的值。
我认为可能的原因是因为内部INSERT-OUTPUT
语句的执行本身会返回一个表,而这样的输出通常可用于为INSERT
语句提供值。 / p>
显然这个例子不起作用;我希望这只是一个简单的语法问题。
提前感谢您的任何意见和建议。
答案 0 :(得分:1)
您的要求可以根据documentation。
假设#tblIntersect有两个匹配的id列,这应该可以工作
INSERT INTO [#tblEntity1] ([Value])
OUTPUT [inserted].[ID] AS [entity1ID], @entity2ID AS [entity2ID]
INTO #tblIntersect
VALUES ('One')