2012-03-01 8 views
20

El SSMS muestra un (1 row(s) affected) extra cada vez que ejecuto insert/update. Por ejemplo, ejecute el siguiente SQL¿Por qué hay un extra? (1 fila (s) afectadas) "

declare @a table (a int) 
insert into @a values (1), (2) 
update @a set a = 3 

Y el SSMS mostrará el siguiente mensaje.

 
(2 row(s) affected) 

(1 row(s) affected) 

(2 row(s) affected) 

(1 row(s) affected) 

No encontré ningún disparador de base de datos/servidor. ¿Qué podría causar el extra (1 row(s) affected)?

+0

Es extraño, he ejecutado script en el servidor sql 2008 r2 me sale solo dos '(2 fila (s) afectada (s)) mensaje. – arunes

+0

Sí, lo es. Y no hay desencadenadores de base de datos/servidor. – ca9163d9

+0

¿Estás seguro? Dado el código anterior, se imprimen SSMS (2 fila (s) afectadas) dos veces. – Mithrandir

Respuesta

33

Eso generalmente significa que tiene activada la opción actual execution plan. El plan de ejecución se envía como un conjunto de filas adicional, lo que resulta en un mensaje adicional (1 row(s) affected).

+2

Para desactivar 'plan de ejecución real' presione' Ctrl + M' –

+0

Este fue el rayo de sol que separó las nubes después de una tarde lluviosa de ansiedad. Me preocupaba que ocurriera algún extraño efecto secundario que mis ojos cansados ​​no pudieran ver. Fue solo el plan de ejecución todo el tiempo. ¡Gracias! –

3

esto no debería suceder. trata de mirar en el actual execution plan, lo que está pasando allí.

+0

Sí, inicié otra pestaña y descubrí que no hay mensajes adicionales porque el plan de ejecución real no está habilitado. – ca9163d9

+2

Para mí fue la actualización del índice de clústeres. Así que una actualización para el índice + una actualización real. – Neolisk

Cuestiones relacionadas