SQL Output子句是否可能返回未插入的列?

我已经对数据库进行了一些修改,并且需要将旧数据迁移到新表中。为此,我需要填充一个表(ReportOptions),该表从原始表(Practice)中获取数据,并填充第二个中间表(PracticeReportOption)。


ReportOption (ReportOptionId int PK, field1, field2...)

Practice (PracticeId int PK, field1, field2...)

PracticeReportOption (PracticeReportOptionId int PK, PracticeId int FK, ReportOptionId int FK, field1, field2...)

我进行了查询,以获取从“练习”移至“报告选项”所需的所有数据,但是我无法填写中间表


--Auxiliary tables

DECLARE @ReportOption TABLE (PracticeId int /*This field is not on the actual ReportOption table*/, field1, field2...)

DECLARE @PracticeReportOption TABLE (PracticeId int, ReportOptionId int, field1, field2)


--First I get all the data I need to move

INSERT INTO @ReportOption

SELECT P.practiceId, field1, field2...

  FROM Practice P


--I insert it into the new table, but somehow I need to have the repation PracticeId / ReportOptionId

INSERT INTO ReportOption (field1, field2...)

OUTPUT @ReportOption.PracticeId, --> this is the field I don't know how to get

       inserted.ReportOptionId

  INTO @PracticeReportOption (PracticeId, ReportOptionId)

SELECT field1, field2

  FROM @ReportOption


--This would insert the relationship, If I knew how to get it!

INSERT INTO @PracticeReportOption (PracticeId, ReportOptionId)

SELECT PracticeId, ReportOptionId

  FROM @ReportOption

如果我可以在OUTPUT子句上引用不在目标表上的字段,那将很棒(我认为我不能,但是我不确定)。关于如何满足我的需求的任何想法?


天涯尽头无女友
浏览 446回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server