Transaktionen Tabellendefinition:Cursor FETCH ist fehlgeschlagen. @@ FETCH_STATUS -1
create table Transactions ([ID] [int] NOT NULL, [Value] [int] NOT NULL)
Lassen Sie uns einige Datensätze einfügen.
INSERT INTO Transactions Values(1,100)
INSERT INTO Transactions Values(2,10)
Dies ist, wie ich Cursor
----- drucktcreate table #Tmp_Transactions ([ID] [int] NOT NULL, [Value] [int] NOT NULL)
INSERT INTO #Tmp_Transactions SELECT * FROM Transactions WHERE Value>100
DECLARE @rowcount int
SET @rowcount = @@rowcount
PRINT @rowcount
DECLARE @ID int
DECLARE txcursor CURSOR FOR SELECT ID FROM #Tmp_Transactions
OPEN txcursor
FETCH NEXT FROM txcursor INTO @ID
PRINT @@FETCH_STATUS ---//prints -1
CLOSE txcursor
DEALLOCATE txcursor
drop table #Tmp_Transactions
bin mit
(0 row(s) affected)
0
-1
Sie ** auch ** müssen ersetzen "SELECT * INTO" mit "INSERT INTO #Tmp_Transactions SELECT * FROM Transaktionen usw." –
Kein Effekt. Es gibt immer noch -1 – user1
Wie viele Zeilen haben Sie in #Tmp_Transactions? Hast du irgendwelche Reihen? Laut der Dokumentation von Microsoft (https://docs.microsoft.com/en-us/sql/t-sql/functions/fetch-status-transact-sql#return-value) bedeutet der Status "-1" "" Die FETCH-Anweisung ist fehlgeschlagen, oder die Zeile befand sich außerhalb der Ergebnismenge. "' –