흥미로운 문제입니다. SAP 데이터 인 Linked Server의 일부 테이블에 JOINs하는 CTE가 있습니다. 이 CTE는 저장 프로 시저에있는 다음 타이머 (10 분마다)에서 SQL Server 에이전트 작업을 통해 실행됩니다. 이것은 거의 20 시간 동안 잘 돌아가고 멀티 파트 식별자로 죽으면 오류를 일으킬 수 없습니다 (CTE 아래의 정확한 오류).연결된 서버가있는 CTE : 다중 항목 식별자를 바인딩 할 수 없습니다.
서버 작업 실행 : SQL 서버 2008 R2 (아무 SP)
연결된 서버
: SQL 서버 2005 SP3 주택 SAPCTE를 :
WITH TaktValues ([Counter], NODE, PLNNR) AS
(
SELECT
MAX(plpo1.ZAEHL) AS [Counter], MAX(plpo1.PLNKN) AS NODE, plpo1.PLNNR
FROM
etl.PLPO plpo1
GROUP BY plpo1.PLNNR
)
SELECT
s022.AUFNR AS WorkOrder,
(CASE
WHEN plpo.SPLIM = 0 THEN 0
ELSE plpo.VGW01/plpo.SPLIM
END) AS TaktTime
INTO
[plc].[TaktTime]
FROM
etl.S022 s022
INNER JOIN
etl.AFPO afpo on afpo.AUFNR = s022.AUFNR
INNER JOIN
etl.AFKO afko on afko.AUFNR = s022.AUFNR
INNER JOIN
etl.PLPO on plpo.PLNNR = afko.PLNNR
INNER JOIN
TaktValues ON plpo.PLNNR = TaktValues.PLNNR
AND plpo.ZAEHL = TaktValues.[Counter]
AND plpo.PLNKN = TaktValues.NODE
WHERE
s022.AUFNR IN (SELECT DISTINCT WorkOrder FROM plc.AlarmData)
ORDER BY
s022.AUFNR DESC
오류 :
Msg 8180, Level 16, State 1, Line 1
Statement(s) could not be prepared.Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "Tbl1008.AUFNR" could not be bound.Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "Tbl1008.AUFNR" could not be bound.
내가 그 SQL에 연결된 서버 참조에 대한 4 부분 이름을 볼 ...없는 : 다음과 같이이 있습니까? – DarrenMB
"Tbl1008.AUFNR"은 귀하의 질문에 있지 않기 때문에 저에게 큰 빨간 점입니다. 뷰 또는 다른 종속 하위 오브젝트에 사용되는 하위 구성 요소라고 기대합니다. 오류를 일으키는 시간이 지남에 따라 뷰가 다시 작성되거나 시스템에 의해 변경되었을 수 있습니다. – DarrenMB
네 부분에 이름 지정 -> 전화가 동의어를 통해 이루어지고 있습니다. – devnate