【问题标题】:how to insert in different table using merge query如何使用合并查询在不同的表中插入
【发布时间】:2016-09-30 09:58:28
【问题描述】:

我在这里尝试使用存储过程添加批量数据
但问题是我不想更新数据我想在条件匹配时将数据插入临时表

 Alter PROCEDURE [dbo].[Update_Customers] 
     @typeMembership aspnet_Membership_type READONLY
    AS
    BEGIN
          SET NOCOUNT ON;

          MERGE INTO aspnet_Membership c1
          USING @typeMembership c2
          ON c1.EmployeeCode=c2.EmployeeCode
          WHEN MATCHED THEN
          UPDATE SET  
          c1.[EmployeeCode] =  c2.[EmployeeCode] ,
          c1.[EmployeeTypeId] = c2.[EmployeeTypeId] ,
          c1.[FirstName] = c2.[FirstName] ,
          c1.[LastName] =  c2.[LastName] ,
          c1.[Gender] =  c2.[Gender] ,
          c1.[Email] =  c2.[Email]  ,
          c1.[MobilePIN] = c2.[MobilePIN] ,
          c1.[Current_Address] =  c2.[Current_Address] ,
          c1.[Permanent_Address] =  c2.[Permanent_Address] ,
          c1.[IsApproved] = c2.[IsApproved]  
          WHEN NOT MATCHED THEN
          INSERT VALUES (c2.EmployeeCode, c2.EmployeeTypeId,c2.FirstName,c2.LastName,c2.Gender,c2.Email,c2.MobilePIN,c2.Current_Address, c2.Permanent_Address,c2.IsApproved);
    END

【问题讨论】:

  • 他们有什么问题,只需将WHEN MATCHED THEN UPDATE 子句更改为WHEN NOT MATCHED THEN UPDATE
  • 我想添加不同的表而不是那个
  • 那么MERGE 不是解决方案。不用它写你自己的程序。

标签: sql sql-server stored-procedures


【解决方案1】:

AFAIK 你不能用合并来做到这一点。您必须编写不同的插入语句:

BEGIN TRY
BEGIN TRANSACTION

INSERT INTO thirdTable (<ColumnsList>)
SELECT <ValuesList>
FROM @typeMembership c2
WHERE EXISTS
(
    SELECT 1
    FROM aspnet_Membership c1
    WHERE c1.EmployeeCode = c2.EmployeeCode
);

INSERT INTO aspnet_Membership (<ColumnsList>)
SELECT <ValuesList>
FROM @typeMembership c2
WHERE NOT EXISTS
(
    SELECT 1
    FROM aspnet_Membership c1
    WHERE c1.EmployeeCode = c2.EmployeeCode
);

COMMIT TRANSACTION
END TRY
BEGIN CATCH
    IF @@Trancount > 0
        ROLLBACK TRANSACTION
END CATCH

【讨论】:

    猜你喜欢
    • 2012-05-17
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2018-11-09
    相关资源
    最近更新 更多