Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Szybki upsert serwer Sql 2008 R2

Myślę, że oświadczenie scalające jest szybsze niż to, co demonstrujesz na dwa sposoby. jeśli chcesz dowiedzieć się więcej o tym, jak napisać MERGE INTO Query na serwerze sql, skorzystaj z linków.

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/

a Twój blok scalania wygląda tak, musisz umieścić to w procedurze sklepu lub w dowolnym innym miejscu.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server :UPDATE MojaTabela SET col1 =wartość, col2 =col1

  2. Tworzenie polilinii geograficznej z punktów w T-SQL

  3. Zwróć 0, gdy wynik jest pusty

  4. SQL Server DOWOLNY operator wyjaśniony

  5. Dodawanie wskazówki do zapytania podczas wywoływania funkcji z wartościami tabelowymi