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

SQL Server 2008 FLUTNING - bedste måde at få tæller på

Du kan angive en OUTPUT-klausul på din MERGE-sætning og få en outputrapport over, hvad der er blevet gjort under MERGE.

MERGE (targetTable) AS t 
USING (sourceTable) AS s
ON t.ID = s.ID
WHEN MATCHED THEN
  (some statements)
WHEN NOT MATCHED THEN
  (some statements)
OUTPUT
  $action, inserted.ID 'inserted', deleted.ID 'deleted'
;

Dette vil give dig en række for hver "handling" (indsæt, opdater, slet) for hver handling. Hvis det er mange udsagn, kan du også OUTPUT INTO @tableVar og derefter se på tabelvariablen.

DECLARE @tableVar TABLE (MergeAction VARCHAR(20), InsertedID INT, DeletedID INT)

MERGE (targetTable) AS t 
USING (sourceTable) AS s
ON t.ID = s.ID
WHEN MATCHED THEN
      (some statements)
WHEN NOT MATCHED THEN
      (some statements)
OUTPUT
      $action, inserted.ID 'inserted', deleted.ID 'deleted' INTO @tableVar
;

SELECT MergeAction, COUNT(*) 
FROM @tableVar  
GROUP BY MergeAction

Tjek Books Online for detaljer om FLETNING erklæring og OUTPUT-klausulen .

Marc



  1. Forbigående fejlhåndtering i .net core 2.1 MVC til MySQL-database

  2. For at finde den næste arbejdsdag

  3. Kan ikke finde MySQL i NodeJS ved hjælp af AWS Lambda

  4. Php-side med html-formular inde udfør php-kode, før formularen udfyldes