T-SQL拆分表和插入ID

时间:2017-04-27 09:05:08

标签: sql sql-server tsql

我目前正在SQL Server 2012上的T-SQL中处理存储过程。我需要合并2个没有Id的表。将在插入第一个表中创建Id。我的问题有点棘手,因此也许你可以帮助我:)。

在存储过程中,导入表的方式如下:

CREATE TYPE [MySchema].[Target] AS TABLE
(
    IsPrivate BIT,
    IsPublic BIT,
    CountryId VARCHAR(100)
);
GO

@TARGETS MySchema.Target READONLY

导入@Targets的一些可能值:

IsPrivate | IsPublic | CountryId   |
----------+----------+-------------+
1         |   0      |   CA,FR     | 
0         |   1      |   US,GB     |

所需的输出:这些@Targets我需要分成2个表,TargetCountry

  1. Target中创建新条目:

    TargetId | IsPrivate | IsPublic |
    ---------+-----------+----------+
    23       |   1       |   1      |  
    24       |   0       |   0      |
    
  2. CountryId拆分为自己的表Country并添加TargetId

    Id | TargetId | CountryId |
    ---+----------+-----------+
     1 |   23     |   CA      | 
     2 |   23     |   FR      |
     3 |   24     |   US      |
     4 |   24     |   GB      |
    
  3. 我当前的查询如下所示:

    CREATE TABLE #tmpTarget (TargetId INT, CountryId VARCHAR(100));
    
    INSERT INTO [MySchema].[Target]([IsPrivate], [IsPublic])
    OUTPUT inserted.TargetId, CountryId INTO #tmpTarget
        SELECT IsPrivate, IsPublic
        FROM @TARGETS
    

    当然这个查询不起作用。我正在考虑如何解决这个问题。对于如何解决这个问题,您有什么想法或有用的提示吗?

    非常感谢! :)

0 个答案:

没有答案