繁体   English   中英

使用 SQL-Server 临时表并将唯一 ID 插入到另一个表中

[英]Temp table and insert the unique Ids into another table, with SQL-Server

如何遍历临时表并将唯一 ID 插入另一个表?

SELECT Id
INTO #TempSubjectValues
FROM WebPortalDemo2DB_Dev_November.dbo.Subject_Value
WHERE SubjectId = @SubjectID_Latest
    
DECLARE @i INT
    
SELECT @i = min(Id)
FROM #TempSubjectValues
    
DECLARE @max INT
    
SELECT @max = max(Id)
FROM #TempSubjectValues
    
WHILE @i <= @max
BEGIN
     INSERT INTO WebPortalDemo2DB_Dev_November.dbo.SubjectValueDetails (
     [Value_Name]
     ,[Value_Details]
     ,[ParentValueDetailId]
     ,[Subject_ValueId]
     ,[isDeleted]
     ,[DeletedDate]
     ,[DeletedBy]
     )
SELECT [Value_Name]
      ,[Value_Details]
      ,[ParentValueDetailId]
      ,@i
      ,[isDeleted]
      ,[DeletedDate]
      ,[DeletedBy]
FROM SubjectValueDetails
WHERE Subject_ValueId IN (
                        SELECT Id
                        FROM Subject_Value
                        WHERE SubjectId = @SubjectID
                        )
    
SET @i = @i + 1
END

这个循环插入重复的数据,但我想要的是插入它在 select 语句中选择的记录,但[Subject_ValueId]应该是已经插入到我已经存储在临时表中的Subject_Value表中的记录。

原因是如果我们在从另一个表和数据库中挑选时插入,我们需要父的新主键。

不确定在没有样本数据的情况下这是否可行。 一旦您确定选择结果正确,就取消对插入行的注释。

--  INSERT INTO WebPortalDemo2DB_Dev_November.dbo.SubjectValueDetails 
SELECT  DISTINCT
        [Value_Name]            =   SVD.[Value_Name]
     ,  [Value_Details]         =   SVD.[Value_Details]
     ,  [ParentValueDetailId]   =   SVD.[ParentValueDetailId]
     ,  [Subject_ValueId]       =   SVD.ID
     ,  [isDeleted]             =   SVD.[isDeleted]
     ,  [DeletedDate]           =   SVD.[DeletedDate]
     ,  [DeletedBy]             =   SVD.[DeletedBy]

FROM    SubjectValueDetails                             SVD
JOIN    WebPortalDemo2DB_Dev_November.dbo.Subject_Value SVN ON  SVN.SubjectID   =   SVD.ID
JOIN    Subject_Value                                   SV  ON  SV.ID           =   SVD.Subject_ValueId

WHERE   
        SV.SubjectId    =   @SubjectID          --  IDK where this value come from
    AND SVN.SubjectId   =   @SubjectID_Latest   --  IDK where this value come from

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM