SQL Azure架构问题错误代码208与临时表

时间:2017-09-11 10:14:02

标签: azure stored-procedures schema temp-tables

我有几个存储过程可以创建不同的临时表。 在程序结束时我放弃它们(知道这不是必需的,但这是一种很好的做法)。

存储过程作为SSIS包的一部分执行。我有4个不同的SQL作业,它们执行并行运行的相同SSIS包。

登录Azure门户并使用性能推荐功能时,我会收到修复架构问题的建议。它声明了一个Sql错误代码208.根据文档意味着“找不到对象”。

临时表在存储过程的范围内有效,并且应该在数据库中获得唯一的名称,所以我不认为在哪里有任何冲突。

我不知道是什么导致这种情况,存储过程似乎工作正常。任何人都知道这可能是什么原因?

其中一个程序的简化示例:

        SET NOCOUNT ON;

    CREATE TABLE #tmpTransEan
        (
          Ean_Art_Str_id BIGINT ,
          Artikler_id BIGINT
        );

    INSERT  INTO #tmpTransEan
            ( Ean_Art_Str_id ,
              Artikler_id
            )
            SELECT  DISTINCT
                    eas.Ean_Art_Str_id ,
                    a.Artikler_id
            FROM    dbo.Artikkel_Priser ap
                    JOIN Ean_Art_Str eas ON eas.artikler_id = ap.Artikler_id
                    JOIN wsKasse_Til_Kasselogg ktk ON eas.Ean_Art_Str_id = ktk.ID_Primary
                    JOIN dbo.Artikler a ON a.Artikler_id = eas.artikler_id
                    JOIN dbo.Felles_Butikker b ON b.Butikker_id = ap.butikker_id
            WHERE   ktk.ID_Table = OBJECT_ID('Ean_Art_Str')
                    AND LEN(a.Artikkelnr) >= 8
                    AND ktk.Tidspunkt >= @tidspunkt
                    AND ( ( ap.butikker_id = @nButikker_id1
                            AND @Alle_artikler_til_kasse = 'N'
                          )
                          OR ( b.Databaser_id = @Databaser_id
                               AND @Alle_artikler_til_kasse = 'J'
                             )
                        )
                    AND b.Akt_kode = 'A'
                    AND a.Akt_kode = 'A'
                    AND a.Databaser_id IN ( -1, @Databaser_id )

    SELECT  DISTINCT
            a.Artikkelnr ,
            s.Storrelse ,
            eas.* ,
            EAN_12 = LEFT(eas.EAN_13, 12)
    FROM    dbo.Ean_Art_Str eas
            JOIN #tmpTransEan t ON t.Artikler_id = eas.artikler_id
            JOIN Artikler a ON a.Artikler_id = eas.artikler_id
            JOIN dbo.Felles_Storrelser s ON s.Storrelser_id = eas.storrelser_id


    DROP TABLE #tmpTransEan;
END;

0 个答案:

没有答案