LinkEjecutando if @@ rowcount> 0 resetea @@ rowcount a 0. ¿Por qué?
@@ recuento de filas se utiliza para informar el número de filas afectadas por la última seleccionar, insertar, actualizar o borrar declaraciones
declare @row int select 100 if @@rowcount>0 set @[email protected]@rowcount ...
Lo anterior devolverá 0 porque tan pronto como
if @@rowcount>0
se ejecuta se restablece a 0 ya que no devuelve ninguna fila. Así que siempre asignar a la variable primera
¿Por qué declaración if @@rowcount>0
restablecer @@rowcount
a: 0? ¿El valor de @@rowcount
no se ve afectado solo por las instrucciones select, insert, update y delete?
gracias
1 - Por lo que yo entiendo, razón por la cual @@ rowcount devolvió 1 y no 0 porque la consulta "SELECT @row, @@ rowcount" afecta a una fila. Pero pensé que el término "número de filas afectadas" se usaba cuando la instrucción sql trataba con filas reales en las tablas de bases de datos, pero su instrucción de selección no accede a ninguna fila, entonces ¿por qué @@ rowcount devuelve 1? – user702769
2 - Espero que esta pregunta tenga algún sentido. Si tuviéramos que puntualizar, ¿@@ rowcount no devuelve el número de filas YA afectadas por la instrucción select? Si es así, entonces "SELECT @row, @@ rowcount" debe devolver 0 para @@ rowcount, ya que la declaración de selección aún no está completa en el momento en que recupera un valor de @@ rowcount, y como tal, ninguna fila se ha visto afectada ¡¿todavía?! – user702769
@ user702769: El @@ rowcount en 'SELECT @row, @@ rowcount' se ve afectado por el' conjunto @row = @@ rowcount; 'encima de él. Un SELECT no puede leer su propio @@ rowcount – gbn