2016-09-28 14 views
1

コミット、ロールバック、およびSQL Serverのようなスノーフレークのcatchブロックでトランザクションを使用するにはどうすればよいですか?Snowflakeでトランザクションを使用するには?

SQL Serverの:私たちは、このようにトランザクションを使用することができます雪片のドキュメントを1として

BEGIN TRY 
    BEGIN TRANSACTION 
     --Insert statement 1 
     --Insert statement 2 
    COMMIT 
END TRY 
BEGIN CATCH 

    IF @@TRANCOUNT > 0 
     ROLLBACK 
END CATCH 

BEGIN TRANSACTION NAME T1; 
-- Insert statement 1; 
-- Insert statement 2; 
COMMIT; 

答えて

3

現在のところ、Snowflakeは同等の構成を提供していません。私たちは機能(リリースされる非常に)に取り組んでいます。トランザクションが失敗した場合にトランザクションを中断することができます。

0

現在のセッションでトランザクションを開始します。

BEGIN [ WORK | TRANSACTION ] [ NAME <name> ] 
START TRANSACTION [ NAME <name> ] 

BEGIN TRANSACTION NAME T1; 

SELECT CURRENT_TRANSACTION(); 

-----------------------+ 
CURRENT_TRANSACTION() | 
-----------------------+ 
1432071497832   | 
-----------------------+ 

INSERT INTO A1 VALUES (1), (2); 

-------------------------+ 
number of rows inserted | 
-------------------------+ 
2      | 
-------------------------+ 

COMMIT; 

ロールバック

SELECT COUNT(*) FROM A1; 

----------+ 
COUNT(*) | 
----------+ 
0  | 
----------+ 

BEGIN NAME T4; 

SELECT CURRENT_TRANSACTION(); 

-----------------------+ 
CURRENT_TRANSACTION() | 
-----------------------+ 
1432071523422   | 
-----------------------+ 

INSERT INTO A1 VALUES (1), (2); 

-------------------------+ 
number of rows inserted | 
-------------------------+ 
2      | 
-------------------------+ 

ROLLBACK; 

SELECT COUNT(*) FROM A1; 

----------+ 
COUNT(*) | 
----------+ 
0  | 
----------+ 
+0

T1でエラーが発生した場合のトランザクションのロールバックはどうですか? –

関連する問題