2011-08-10 11 views
14

tengo una pregunta que hacer UPSERT o actualización si existe y si no se inserta:SQL Server - ¿Dispara afecta @@ Rowcount?

update MyTable 
set [Name][email protected] 
where [email protected] 

If @@RowCount = 0 
insert into MyTable([Name]) 
values(@Name) 

Ahora, me pregunto si el @@RowCount se verán afectados por una consulta ejecutada en un gatillo? Digamos que en mi gatillo que tengo:

insert into MyLogs(Description) 
values("Some description...") 

Si la actualización se realiza correctamente en mi primera consulta, el gatillo se ejecutará el inserto a mylogs que tendrán filas afectadas.

Respuesta

12

@@ROWCOUNT está vinculado al alcance de su ejecución actual y, por lo tanto, no se ve afectado por un desencadenador, que se ejecutará en un ámbito diferente.