我在SSIS中有一个执行SQL步骤,它与以下错误不一致:
[执行SQL任务]错误:执行查询" sp name"失败了 以下错误:"该语句已被终止。"。可能 失败原因:查询问题," ResultSet"财产没有设定 正确,参数设置不正确,或连接未建立 正确。
存储过程截断表,然后使用tablock将数据插入其中。它没有参数化,也没有返回记录集。
发生这种情况的流程看起来像这样,所有四个调用不同,但类似的过程都将同一个表中的数据加载到四个不同的目标中:
其他信息:
编辑:
存储过程是这样的:
create or alter myprocedure as
truncate table mytable
insert into mytable with (tablock)
(col1,col2,col3,col4,col5 ... col30)
select
try_cast(col1 as something) as col1
,try_cast(col2 as something) as col2
,try_cast(col3 as something) as col3
,col4
,col5
...
,col30
from
myothertable
编辑:我有另一个几乎相同的进程 - 除非它针对导入的不同文件。它没有问题。文件较小10Gb对15GB。
编辑:SQL错误日志中有一些堆栈转储:
- BEGIN STACK DUMP:
- 03/04/17 17:39:43 spid 11668
- 地点:AllocPageRef.cpp:2436
- 表达式:IAM_START_PGID(ext_id,ext_size)== startExtId
- SPID:77
- 流程ID:7836
- 描述:在错误的IAM页面中查找范围
- 输入缓冲区70字节 -
- exec my_sp
运行更多DBCC命令的时间。
答案 0 :(得分:0)
您是否在任何其他程序中引用“myothertable”?您是否检查了如何设置包和容器的默认事务处理?如果您正在使用tablock并且在嵌套事务中,如果它全部是默认的,那么您可能会立即陷入僵局。