sql >> データベース >  >> RDS >> Sqlserver

高速アップサートSQLサーバー2008R2

    マージステートメントは、2つの方法で示すよりも高速だと思います。 SQLServerでMERGEINTOクエリを作成する方法について詳しく知る必要がある場合は、リンクをたどってください。

    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/

    マージブロックは次のようになります。これをストアドプロシージャまたはその他の場所に配置する必要があります。

    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. データベースから生成されたphp多次元配列

    2. 結果の列名として結合テーブルの列値を選択する

    3. DB CPU使用率に影響を与えるクエリに続いて、テーブル内のデータを減らすことでDBCPUパフォーマンスを下げることができますか

    4. SQLServerでのDateTimeのYYYY-MM-DD形式への変換