Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS审核步骤遇到错误_Sql Server_Ssis - Fatal编程技术网

Sql server SSIS审核步骤遇到错误

Sql server SSIS审核步骤遇到错误,sql-server,ssis,Sql Server,Ssis,我在SSIS包中有一个步骤,我想用另一个表(T2)中最新行的信息更新执行日志(T1)中的最新行 “Where”语句周围有一个错误 UPDATE T1 SET [Survey_Size] = ssd.[FileName] ,Survey_Start_Date = ssd.[Start_Date] ,Survey_End_Date = ssd.[End_Date] ,[EndTime] = getdate() ,loaded = 1 FROM (SELECT

我在SSIS包中有一个步骤,我想用另一个表(T2)中最新行的信息更新执行日志(T1)中的最新行

“Where”语句周围有一个错误

UPDATE T1
SET 
    [Survey_Size] = ssd.[FileName]
    ,Survey_Start_Date = ssd.[Start_Date]
    ,Survey_End_Date = ssd.[End_Date]
    ,[EndTime] = getdate()
    ,loaded = 1
FROM (SELECT max(log_sk) AS maxSk FROM T1) A
JOIN (SELECT max(PK) AS maxPK FROM T2) SS 
JOIN (SELECT PK, [FileName], Start_Date, End_Date, Survey_Size FROM T2) ssd ON ss.maxPK = ssd.pk
WHERE log_sk = a.maxSk
表1如下所示:

log_sk | FileName | Survey_Size | Start_Date | End_Date
我想更新表2中的信息,如下所示,其中FileName是两者的连接键

PK | FileName | Start_Date | End_Date | Survey_Size

我用CTE重写它,因为它效率更高,可读性更强

;With LastT1 as (
    Select
        log_sk as ID,
        Survey_Size,
        Survey_Start_Date,
        Survey_End_Date,
        EndTime,
        loaded,
        ROW_NUMBER() over (order by log_sk Desc) as Row_No
    From T1
), LatestT2 as (
    Select
        PK as ID,
        [FileName],
        [Start_Date],
        End_Date,
        Survey_Size,
        ROW_NUMBER() over (order by PK Desc) as Row_No
    From T2
)
Update Source
Set
    Source.[Survey_Size] = LatestT2.[FileName],
    Source.Survey_Start_Date = LatestT2.[Start_Date],
    Source.Survey_End_Date = LatestT2.[End_Date],
    Source.[EndTime] = getdate(),
    Source.loaded = 1
From LastT1 as Source
Inner Join LatestT2 on Source.ID = LatestT2.ID and LatestT2.Row_No = 1
Where Source.Row_No = 1

你能提供完整的错误信息吗?另外:该声明是否在SSM中起作用?T1别名位于子查询中时看起来很奇怪。它在SSMS中不起作用-我知道某些东西处于关闭状态,但不确定SS别名的连接是否具有打开条件。这可能就是它所抱怨的。将该连接更改为“交叉连接”,谢谢@TimMylott。交叉连接工作得很好@MZEN;如果有帮助,请在答案上做标记,如果没有帮助,请发表评论。