LinkL'esecuzione se @@ rowcount> 0 ripristina @@ rowcount su 0. Perché?
@@ conteggio delle righe viene utilizzato per informare il numero di righe interessate per l'ultima di selezione, inserimento, aggiornamento o DELETE
declare @row int select 100 if @@rowcount>0 set @[email protected]@rowcount ...
È possibile che questo restituirà 0 perché non appena
if @@rowcount>0
viene eseguito viene reimpostato su 0 poiché non restituisce alcuna riga. Quindi, sempre assegnare alla variabile prima
Perché dichiarazione if @@rowcount>0
reimpostato @@rowcount
-0? Il valore di @@rowcount
non è influenzato solo da select, insert, update e delete statements?
grazie
1 - Per quanto ho capito, motivo per cui @@ rowcount ha restituito 1 e non 0 è dovuto alla query "SELECT @row, @@ rowcount" che interessa una riga. Ma ho pensato che il termine "numero di righe interessate" fosse usato quando l'istruzione sql si occupava di righe effettive nelle tabelle DB, ma l'istruzione select non ha accesso a nessuna riga, quindi perché @@ rowcount restituisce 1? – user702769
2 - Spero che questa domanda abbia un senso: se dovessimo eseguire il nitpick, non @@ rowcount restituirà il numero di righe GIÀ influenzate dall'istruzione select? Se è così, quindi "SELEZIONA @row, @@ rowcount" dovrebbe restituire 0 per il conteggio delle righe @@, poiché l'istruzione select non è stata ancora completamente completata nel momento in cui recupera un valore da @@ rowcount e pertanto nessuna riga è stata influenzata ancora?! – user702769
@ user702769: Il conteggio delle righe @@ in 'SELECT @row, @@ rowcount' è influenzato dal' set @row = @@ rowcount; 'sopra di esso. Un SELECT non può leggere il proprio numero @@ rowcount – gbn