THROW
Description
Implements error handling for Transact SQL. A group of Transact-SQL statements can be enclosed in a TRY block. If an error occurs in the TRY block, control is usually passed to another group of statements that is enclosed in a CATCH block.
Sample Source Patterns
The following example details the transformation for THROW statement without custom message.
SQL Server
CREATE PROCEDURE THROW_PROCEDURE AS
BEGIN TRY
SELECT 1/0;
END TRY
BEGIN CATCH
THROW;
END CATCH
Snowflake SQL
CREATE OR REPLACE PROCEDURE THROW_PROCEDURE ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
BEGIN
BEGIN
SELECT
TRUNC( 1/0);
EXCEPTION
WHEN OTHER THEN
LET DECLARED_EXCEPTION EXCEPTION;
RAISE DECLARED_EXCEPTION;
END;
END;
$$;
The following example details the transformation for THROW statement with a custom message.
SQL Server
CREATE PROCEDURE THROW_PROCEDURE AS
BEGIN TRY
SELECT 1/0;
END TRY
BEGIN CATCH
DECLARE @ERROR_MSG VARCHAR(max) = 'DIVISION BY 0';
THROW 50000, @ERROR_MSG, 1;
END CATCH
Snowflake SQL
CREATE PROCEDURE THROW_PROCEDURE AS
BEGIN TRY
SELECT 1/0;
END TRY
BEGIN CATCH
DECLARE @ERROR_MSG VARCHAR(max) = 'DIVISION BY 0';
THROW 50000, @ERROR_MSG, 1;
END CATCH
For THROW statements without a custom message, the default message from SQL Server and Snowflake may be different.
Related EWIs
No related EWIs.
Last updated
Was this helpful?