相关疑难解决方法(0)

T-SQL - 将数据插入父表和子表

码:

CREATE TYPE dbo.tEmployeeData AS TABLE 
(
     FirstName NVARCHAR(50),
     LastName NVARCHAR(50),
     DepartmentType NVARCHAR(10),
     DepartmentBuilding NVARCHAR(50),
     DepartmentEmployeeLevel NVARCHAR(10),
     DepartmentTypeAMetadata NVARCHAR(100),
     DepartmentTypeBMetadata NVARCHAR(100)
)
GO

CREATE PROC dbo.EmployeeImport 
    (@tEmployeeData tEmployeeData READONLY)
AS
BEGIN
     DECLARE @MainEmployee TABLE 
                           (EmployeeID INT IDENTITY(1,1),
                            FirstName NVARCHAR(50),
                            LastName NVARCHAR(50))

    DECLARE @ParentEmployeeDepartment TABLE 
                                      (EmployeeID INT,
                                       ParentEmployeeDepartmentID INT IDENTITY(1,1),
                                       DepartmentType NVARCHAR(10))

    DECLARE @ChildEmployeeDepartmentTypeA TABLE 
                  (ParentEmployeeDepartmentID INT,
                   DepartmentBuilding NVARCHAR(50),
                   DepartmentEmployeeLevel NVARCHAR(10),
                   DepartmentTypeAMetadata NVARCHAR(100))

    DECLARE @ChildEmployeeDepartmentTypeB TABLE 
                  (ParentEmployeeDepartmentID INT,
                   DepartmentBuilding NVARCHAR(50),
                   DepartmentEmployeeLevel NVARCHAR(10),
                   DepartmentTypeBMetadata NVARCHAR(100))

    -- INSERT CODE GOES HERE
    SELECT * …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2012

6
推荐指数
1
解决办法
5261
查看次数

插入...合并...选择 (SQL Server)

我可以利用你的专业知识。我有以下代码:

INSERT INTO Table3 (Column2, Column3, Column4, Column5)
SELECT null, 110, Table1.ID, Table2.Column2
FROM Table1
     JOIN Table1Table2Link on Table1.ID=Table1Table2Link.Column1
     JOIN Table2 on Table1Table2Link.Column2=Table2.ID
Run Code Online (Sandbox Code Playgroud)

现在我需要获取 Inserted.ID(在插入时生成的 Table3 的标识)和 Table2.ID 并将它们插入到临时表或表变量中。通常我会使用 OUTPUT 子句,但 OUTPUT 无法从不同的表中获取数据。现在我相信它可以通过 MERGE 完成,但我不知道如何去做。我需要类似的东西:

INSERT INTO Table3 (Column2, Column3, Column4, Column5)
OUTPUT Inserted.ID, Table2.ID into @MyTableVar
SELECT null, 110, Table1.ID, Table2.Column2
FROM Table1
     JOIN Table1Table2Link on Table1.ID=Table1Table2Link.Column1
     JOIN Table2 on Table1Table2Link.Column2=Table2.ID
Run Code Online (Sandbox Code Playgroud)

如果这是一个重复的问题,我深表歉意,但我找不到任何东西。

sql sql-server

2
推荐指数
1
解决办法
4415
查看次数

标签 统计

sql ×2

sql-server ×2

sql-server-2012 ×1