合并声明和身份插入

hit*_*gja 3 t-sql sql-server merge

我正在使用Merge语句在我的存储过程中插入/更新数据.

MERGE [dbo].[tReserveData_4541] AS Target
USING (SELECT * FROM  [dbo].[tblcangrowhitesh]) AS Source
ON ( [Source].[PK_ID] =  [Target].[PK_ID])

WHEN MATCHED THEN
    UPDATE SET [Target].[mgender] = Source.[mgender]

WHEN NOT MATCHED BY TARGET THEN
    INSERT ([Granularity], [PK_ID], [ROWID], 
            [mgender], [mma1], [mma2], [mma3], 
            [mmadmincost], [mmcumulativevolume], 
            [mmcurrency], [mmdate],
            [mmfileimporteddate], [mmfilename])
    VALUES ([Source].[Granularity], [Source].[PK_ID], [Source].[ROWID],
            [Source].[mgender], [Source].[mma1], [Source].[mma2], [Source].[mma3], 
            [Source].[mmadmincost], [Source].[mmcumulativevolume],
            [Source].[mmcurrency], [Source].[mmdate],
            [Source].[mmfileimporteddate], [Source].[mmfilename])
Run Code Online (Sandbox Code Playgroud)

如您所见,我将[PK_ID]MERGE语句中插入标识列.但我无法这样做.

Phi*_*ley 9

我对MERGE命令并不熟悉,但是当你直接插入标识列时,你不必使用IDENTITY_INSERT命令吗?例如

SET IDENTITY_INSERT [dbo].[tReserveData_4541] on

MERGE...

SET IDENTITY_INSERT [dbo].[tReserveData_4541] off
Run Code Online (Sandbox Code Playgroud)