SQL Server存储过程不会引发异常

时间:2018-08-06 06:23:48

标签: sql-server python-3.6 pyodbc

我在SQL Server 2017中有一个存储过程,该存储过程在表中插入一行:

CREATE PROCEDURE [dbo].[insertsomething]
AS
BEGIN
BEGIN TRY
... #insert statement here
END TRY
BEGIN CATCH
    SELECT 'Failed'
    THROW;
END CATCH
END

使用insertsomething调用pyodbc.execute过程时,我仅使用fetchone()中的cursor函数获得“失败”结果。

try:
    cursor = connection.cursor()
    cursor.execute('{CALL dbo.insertsomething (?, ? ...)}', params)
    result = cursor.fetchone()[0]
except Exception as e:
    raise

调用nextset不会引发错误。由于第一个结果集,看来THROW不会返回错误。我可以调用或使用任何属性或方法来引发来自THROW的错误吗?我无权修改stored procedure,因此我必须在应用程序级别捕获异常。

0 个答案:

没有答案