2011-06-27 4 views
2

SQL Server 2008にストアドプロシージャがあり、操作の挿入/削除/更新のかなりの量があります。ストアドプロシージャがすべての挿入/削除/更新操作を完了したかどうかをチェックする方法はありますか?

ストアドプロシージャが完了したかどうかを検出できる可能性がありますか?すべての挿入/削除/更新操作

また、ここではstatusCode(0/1)になるストアドプロシージャから返される値があることを理解しています。しかし、私の実験では、ストアドプロシージャの実行が終了した時点でstatusCodeがただちに返されることがわかりました。一方、挿入/削除/更新は実際にはまだ実行されていました。だから私はここで、statusCodeの挿入/削除/更新操作がすべて完了したときに返されるのを見るために何をすべきですか?

ありがとうございました。

コードの構造:

BEGIN 
    DECLARE @statusCode 
    SET @statusCode = 0 

    -- Loop through all tables in a given database 
    -- using cursor 
    -- do Insert/Update/ Delete operations 

    SET @statusCode = 1 
    SELECT @statusCode 
END 
+0

あなたの質問に対する答えを丁寧に受け入れることができます。大部分は、あなたはそうしたことを怠りました。前の質問への回答を受け入れることができます。これにより、他のStackOverflowユーザーからのさらなる助けになるかもしれません。 – Rodrigo

+0

@Rodrigoリマインダーをありがとう。うん、私はこの投稿の回答をマークし、以前の投稿を見直し、まだマークされていないものをマークします。 – woodykiddy

答えて

2

ストアドプロシージャを返す場合、その呼び出しのためのすべての操作が完了しています。

あなたは別の接続があまりにも変更を行っているない限り、ストアドプロシージャの終了後に継続ない見た事業を展開しています。 1つは、Aを壊すでしょう。ACID

+0

@gbnうーん、面白いです。 SQL Server 2008でストアドプロシージャを実行しましたが、実際にはクエリの実行が完了する前でも値が返されていました。 – woodykiddy

+0

@woodykiddy:これは不可能です。それは簡単です。 – gbn

+0

@gbn wikiリンクに感謝し、私はそれを読んでいます。 – woodykiddy

関連する問題