问题
我正在将 JayDeBeApi 连接到 SQL Server 2017 并运行如下脚本:
- SELECT ... INTO #a-temp-table
- 从表中删除
- INSERT INTO a-table SELECT FROM #a-temp-table
- 删除#a-temp-table
在第 3 步中,我收到以下错误:
无法在具有唯一索引“UQ_a-table”的对象“dbo.a-table”中插入重复的键行。重复键值为 (11, 0001, 3751191, T70206CAT, 0000)。
而不是 ~360k 记录,只有 ~180k 被插入。所以步骤 3 中止。但是临时表会被删除。这样第 4 步就完成了。
我能够修复错误。但是对于 JayDeBeApi,我没有看到错误。从 Python 的角度来看,似乎一切都很好。
我的目标是捕获这些错误以适当地处理它们。知道如何实现吗?
我试过的
我的 Python 代码看起来像。
try:
localCursor = dbConnection.cursor()
x = localCursor.execute(query)
logInfo("Run script %s... done" % (scriptNameAndPath), "run script", diagnosticLog)
except Exception as e:
logError("Error running sql statement " + scriptNameAndPath + ". Skipping rest of row.",
"run script", e, diagnosticLog)
myrow = skipRowAndLogRecord(startRowTime, cursor, recordLog)
continue
x = localCursor.execute(myqrystm)
成功完成,所以不会抛出异常。x
是None
并且在检查时localCursor
,我没有看到任何错误消息/代码的迹象