我使用python中的pyodbc调用python中的存储过程。它在几个语句后停止执行。你知道吗
在以下脚本中,它停止从表3执行\u trn处理:
SELECT @l_cnt = count(1)
FROM plutotrn.table3_trn
CREATE OR ALTER PROCEDURE sp_load_data
AS
DECLARE @l_cnt INT
DECLARE @def_schema NVARCHAR(20) ='dbo'
DECLARE @transit_schema NVARCHAR(20)='trn_schema'
BEGIN
SET NOCOUNT ON;
BEGIN TRY
SELECT @l_cnt = count(1)
FROM table1_trn
IF @l_cnt > 0
BEGIN
EXEC sp_modify_indexes @table_name='table1',@schema_name=@def_schema,@enable_or_rebuild='DISABLE' ;
EXEC sp_switch_partitions @source_table = 'table1_trn' , @target_table = 'table1' ,@src_schema_name=@transit_schema ,@tgt_schema_name =@def_schema
END
SELECT @l_cnt = count(1)
FROM plutotrn.table2_trn
IF @l_cnt > 0
BEGIN
EXEC sp_modify_indexes @table_name='table2',@schema_name=@def_schema,@enable_or_rebuild='DISABLE' ;
EXEC sp_switch_partitions @source_table = 'table2_trn' , @target_table = 'table2' ,@src_schema_name=@transit_schema ,@tgt_schema_name =@def_schema
END
SELECT @l_cnt = count(1)
FROM plutotrn.table3_trn
IF @l_cnt > 0
BEGIN
EXEC sp_modify_indexes @table_name='table3',@schema_name=@def_schema,@enable_or_rebuild='DISABLE' ;
ALTER TABLE table3 NOCHECK CONSTRAINT ALL ;
ALTER TABLE table3_trn NOCHECK CONSTRAINT ALL ;
EXEC sp_switch_partitions @source_table = 'table3_trn' , @target_table = 'table3' ,@src_schema_name=@transit_schema ,@tgt_schema_name =@def_schema
END TRY
BEGIN CATCH
INSERT INTO debug VALUES (concat(ERROR_NUMBER(),ERROR_LINE (),ERROR_MESSAGE()))
END CATCH
END;
我已经解决了这个问题,在python调用过程并执行过程中的所有步骤之后,增加了2分钟的睡眠时间成功。五月这不是最好的解决办法,但对我有用。你知道吗
相关问题 更多 >
编程相关推荐