在SSIS中重新定位标识列

时间:2016-08-19 01:55:54

标签: sql sql-server ssis

我必须根据目标数据库中的表中的DBCC CHECKIDENT (Person, RESEED, ?) 在我的登台数据库中重新设置一个表。

因此,我创建了一个执行DECLARE @Sql VARCHAR(100) = 'DBCC CHECKIDENT (Person, RESEED, ' + CAST(100 AS VARCHAR) + ')' EXEC (@Sql) 的查询,然后进入结果集并将ResultName命名为maxID。 (执行SQL组件)。

然后我创建了第二个Execute SQL组件,并将前一个组件的参数映射到一个名为MaxID的参数(参数大小:0,数据类型:十进制)。

第二个组件的SQL语句是:

$detail = [];
foreach ($array as $item){
    foreach ($item['report']['daily']['ups'] as $date=>$total){
        if (!array_key_exists($date, $detail)){
            $detail[$date] = $total;
        }else{
            $detail[$date] += $total;
        }
    }
}
// int 219
var_dump(array_sum($detail));

var_dump($detail);
/*
array (size=3)
'Aug. 1' => int 105
'Aug. 2' => int 52
'Aug. 3' => int 62
*/

我收到以下错误:

  

[执行SQL任务]错误:执行查询" DBCC CHECKIDENT   (人,RESEED,?)"失败,出现以下错误:"类型为   参数' @ P1'在这种情况下无法推断出。"。可能的失败   原因:查询问题," ResultSet"财产没有设定   正确,参数设置不正确,或连接未建立   正确。

任何指导或帮助都会很棒。

编辑: 我试图在我的执行SQL任务中使用以下SQL:

<add key="http_proxy" value="host" />
<add key="http_proxy.user" value="username" />
<add key="http_proxy.password" value="encrypted_password" />

但是收到错误:

  

[执行SQL任务]错误:执行查询&#34; DECLARE @Sql   VARCHAR(100)=&#39; DBCC CHECKIDENT(Pers ...&#34;失败,如下所示   错误:&#34;参数名称无法识别。&#34;。可能的失败原因:   查询问题,&#34; ResultSet&#34;属性设置不正确,   参数设置不正确,或连接未正确建立。

1 个答案:

答案 0 :(得分:-3)

尝试构造sql查询并使用动态sql执行它