我目前正在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个表,Target
和Country
:
在Target
中创建新条目:
TargetId | IsPrivate | IsPublic |
---------+-----------+----------+
23 | 1 | 1 |
24 | 0 | 0 |
将CountryId
拆分为自己的表Country
并添加TargetId
:
Id | TargetId | CountryId |
---+----------+-----------+
1 | 23 | CA |
2 | 23 | FR |
3 | 24 | US |
4 | 24 | GB |
我当前的查询如下所示:
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
当然这个查询不起作用。我正在考虑如何解决这个问题。对于如何解决这个问题,您有什么想法或有用的提示吗?
非常感谢! :)