The following transaction may contain nested transactions and this is considered a complex pattern not supported in Snowflake.
Important Notice: Migration of Documentation Website
Please be advised that our documentation website is currently undergoing a migration to a new platform. To ensure you have access to the most up-to-date information, we kindly request that you visit our new documentation website located at:
For any immediate assistance or if you encounter any issues, please contact our support team at [email protected].
Thank you for your understanding.
Some parts in the output code are omitted for clarity reasons.
Severity
High
Description
This error is added to indicate when a transaction may contain nested transactions. In SQL Server, transactions can be nested. This means that it is possible to start a new transaction within an existing transaction. If after the first BEGIN statement, we execute another one, a new transaction will be opened and the current transaction count will be increased by one.\
On the other hand this is not supported in Snowflake, what will happen is that the second BEGIN statement will be ignored and we will still have only one transaction. For more information please refer to SQL Server Transactions.
Code Example
Input Code:
IN -> SqlServer_01.sql
CREATEPROC transactionsTestASBEGINTRANSACTIONSELECT @@TRANCOUNT AS TransactionCount_AfterFirstTransaction INSERT INTO TESTSCHEMA.TESTTABLE(ID) VALUES (1), (2) BEGINTRANSACTIONSELECT @@TRANCOUNT AS TransactionCount_AfterSecondTransaction INSERT INTO TESTSCHEMA.TESTTABLE(ID) VALUES (3), (4) COMMIT;SELECT @@TRANCOUNT AS TransactionCount_AfterFirstCommit COMMIT;END;
Output Code:
Recommendations
In Snowflake nested transactions will not cause compilation errors, they will simply be ignored. You can access the assessment reports to check if nested transactions are present.