我正在尝试这样的事情:
INSERT INTO MyTable (
Col1
,Col2 )
OUTPUT DISTINCT -- issue is with DISTINCT
INSERTED.Col1
,@otherParameter
INTO IdListTable
SELECT ColA
,ColB
,SUM(ImportantNumber)
FROM MyOtherTable
GROUP BY ColA, ColB
除了SQL不希望我在DISTINCT
子句中使用OUTPUT
。我想到的解决方法是为输出创建临时表,然后INSERT DISTINCT
创建IdListTable
。有关不同解决方法的任何想法吗?
答案 0 :(得分:6)
在Output语句中将IdListTable替换为临时表(或表变量,具体取决于行数)。然后使用Select Distinct从临时表中向IdListTable运行第二个Insert语句。
INSERT INTO MyTable (
Col1,
Col2 )
OUTPUT
INSERTED.Col1,
@otherParameter
INTO #tempIdListTable
SELECT ColA,
ColB,
SUM(ImportantNumber)
FROM MyOtherTable
GROUP BY ColA, ColB
Insert into IdListTable
Select distinct col1, col2 from #tempIdListTable