sql >> Database teknologi >  >> RDS >> Sqlserver

Hurtig upsert SQL-server 2008 R2

Jeg tror, ​​at fusionserklæring er hurtigere end det, du demonstrerer på dine 2 måder. hvis du har brug for at vide mere om, hvordan man skriver MERGE INTO Query i sql server, så følg venligst linkene..

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/

og din fletteblok ser sådan ud, skal du indsætte den i din butiksprocedure eller andre steder.

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);


  1. Hvorfor er det hurtigere at udføre lagrede procedurer end SQL-forespørgsler fra et script?

  2. Opdatering af flere rækker af en enkelt tabel

  3. MySQL-opdatering øgede (ikke auto-forøgede) kolonneværdier

  4. Indsættelse af dato fra formular ved hjælp af PHP Mysql