Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Schnelles Upsert von SQL Server 2008 R2

Ich denke, die Merge-Anweisung ist schneller als das, was Sie auf zwei Arten demonstrieren. Wenn Sie mehr darüber wissen möchten, wie man MERGE INTO Query in SQL Server schreibt, folgen Sie bitte den Links..

http://blog.sqlauthority.com/2008/08/28/sql-server-2008-introduction-to-merge-statement-one-statement-for-insert-update-delete/

https://www.simple-talk.com/sql/learn-sql-server/the-merge-statement-in-sql-server-2008/

und Ihr Zusammenführungsblock so aussieht, müssen Sie ihn in Ihre Geschäftsprozedur oder an andere Stellen einfügen.

MERGE INTO SHARE_AD_GROUP A
USING (
    SELECT SHARE_AD_GROUP_ID,
        SHARE_ID,
        AD_GROUP,
        SHARE_PERMISSIONS
    FROM SHARE_AD_GROUP
    WHERE SHARE_ID = @shareID AND AD_GROUP = @ownerId
) B ON (A.SHARE_AD_GROUP_ID = B.SHARE_AD_GROUP_ID)
WHEN MATCHED THEN
    UPDATE SET A.SHARE_PERMISSIONS = B.SHARE_PERMISSIONS
WHEN NOT MATCHED THEN
    INSERT (SHARE_PERMISSIONS) VALUES(@sharePermissions);