我有几个存储过程可以创建不同的临时表。 在程序结束时我放弃它们(知道这不是必需的,但这是一种很好的做法)。
存储过程作为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;