Это может помочь вам. Мы можем достичь этого двумя способами.1. OUTPUT Clause :
Возвращает информацию или выражения, основанные на каждой строке, затронутой оператором INSERT, UPDATE, DELETE или MERGE.Эти результаты могут быть возвращены приложению обработки для использования в таких вещах, как подтверждающие сообщения, архивирование и другие подобные требования приложения.Результаты также могут быть вставлены в таблицу или переменную таблицы.Кроме того, вы можете зафиксировать результаты предложения OUTPUT во вложенном операторе INSERT, UPDATE, DELETE или MERGE и вставить эти результаты в целевую таблицу или представление.2. @@rowcount :
Возвращает количество строк, затронутых последним оператором.Если количество строк превышает 2 миллиарда, используйте ROWCOUNT_BIG.
CREATE TABLE TEMPS
(
ID INT,
ENTRY_DT DATETIME,
BIRTH_DT DATETIME,
NAMES VARCHAR (25)
)
/*----------------------1. Get Inserted & Updated record using @@ROWCOUNT-------------------------------- */
declare @rowcnt int
INSERT INTO TEMPS
VALUES ('123', '6/10/2015', '2/6/2018', 'JOHN'),
('123', '2/4/2018', '2/6/2018', 'SMITH'),
('123', '2/4/2018', '2/6/2018', 'DOE')
set @rowcnt = @@rowcount
update temps
set Names ='rima'
where temps.Names = 'SMITH'
set @rowcnt = @rowcnt+@@rowcount
select @rowcnt "total_rows_affected"
/*----------------------2. Get Inserted record count using Output Caluse-------------------------------- */
DECLARE @MyTableVar_Inserted table( Inserted_Cnt int );
INSERT INTO TEMPS
output inserted.ID
Into @MyTableVar_Inserted
VALUES ('123', '6/10/2015', '2/6/2018', 'JOHN'),
('123', '2/4/2018', '2/6/2018', 'SMITH'),
('123', '2/4/2018', '2/6/2018', 'DOE')
select * from temps
select count(*) from @MyTableVar_Inserted
/*----------------------Get Updated record count using Output Caluse-------------------------------- */
DECLARE @MyTableVar_Updated table( Updated_Cnt int );
update temps
set Names ='rima'
OUTPUT INSERTED.ID cnt
INTO @MyTableVar_Updated
where temps.Names = 'SMITH'
select count(Updated_Cnt) from @MyTableVar_Updated