トランザクションテーブル定義:カーソルFETCHが失敗しました。 @@ FETCH_STATUSは-1
create table Transactions ([ID] [int] NOT NULL, [Value] [int] NOT NULL)
はのは、一部のレコードを挿入してみましょう。
INSERT INTO Transactions Values(1,100)
INSERT INTO Transactions Values(2,10)
これは私がカーソル
create 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
を使用しています方法です-----は、カーソルを開いた後
(0 row(s) affected)
0
-1
**また、「SELECT * INTO」を「INSERT INTO #Tmp_Transactions SELECT * FROM Transactions」に置き換える必要があります。 –
効果はありません。それでも-1を返します – user1
#Tmp_Transactionsにはいくつの行がありますか?行はありますか? [Microsoftのドキュメント](https://docs.microsoft.com/en-us/sql/t-sql/functions/fetch-status-transact-sql#return-value)によると、ステータス「-1」は、 FETCH文が失敗したか、または行が結果セットを超えていました。 " –