2017-10-30 3 views
1

내가 이전에 제대로 좀 더 다음이 접두사를 가질 수 없습니다 오류의 목적/의미를 이해한다면 나는 다음과 같은 오류 (들)접두사 표에 대한 오류 및 서버 전화

Msg 117, Level 15, State 1, Procedure lp_..._data, Line 153 
The object name 'abcDBProd.Intermediate.dbo.upld_data' contains more than the maximum number of prefixes. The maximum is 2. 

Msg 117, Level 15, State 1, Procedure lp_..._Tables, Line 520 
The object name 'ABCDBPROD.Intermediate.dbo.UPLD_data' contains more than the maximum number of prefixes. The maximum is 2. 

받고 있어요 테이블 이름. 첫 번째 문장에서는 Server 자체의 이름을 사용하고 두 번째 경우에는 LinkedServer 이름을 사용합니다. 내가 가진이 혼란은 내가이 서버/databse에 많은 테이블을 가지고 있고 그것들은 모두 동일하게 연결되어 있으며이 중 하나도이 오류를 일으키지 않는다는 것입니다. 그러나 이것은 하나입니다.

어떻게해야합니까? 권한 문제 또는 보안 문제입니까? 나는 어디에서 봐야할지 모르겠다.

명령을 호출하여 테이블을 호출하거나 데이터를 자르고, 삽입하거나 업데이트하는 것이 중요합니까? 자를 수 없지만 삽입 할 수있는 것과 같은 제한이 있습니까? 어떤 경우에는 작동하지만 다른 경우에는 작동하지 않는 이유는 무엇입니까?

+0

내가 아는 한 SQL Server는 네 부분으로 된 네이밍을 지원합니다. https://technet.microsoft.com/en-us/library/ms187879(v=sql.105).aspx. 반면에 항상 읽을 수있는 테이블 별칭을 사용합니다. –

+0

참조하려는 위치에서 실제 쿼리를 공유 할 수 있습니까? 또한 4 부분 이름은 연결된 서버를 사용한다는 점도 명심하십시오. 내 추측으로는 이름에 마침표가있는 테이블을 가지고있는 것 같지만 그것은 단지 추측입니다. –

+0

검토 하겠지만 마침표가있는 표는 표시되지 않습니다. 모두는 꽤 비슷한 upld_name입니다. 일부 선택, 삽입, 잘라 내기, 놓기, uplds 등등이 있습니다. – Elizabeth

답변

0

DROP TABLEINSERT INTO과 같이 일부 컨텍스트에서는 연결된 테이블을 사용할 수 없습니다. 서버 이름을 포함하는 이름을 사용하면이 오류가 발생합니다. 예를 들어

,이 허용되지 않습니다 :

drop table abcDBProd.Intermediate.dbo.upld_data; 

당신은 openquery()와 함께이 문제를 해결 할 수 있습니다.

+0

이 코드를 제외한 여러 가지 삽입 코드가 오류/문제를 일으키지 않습니다. – Elizabeth

+0

에서 삭제 'ABCDBPROD.Intermediate.dbo.UPLD_data' 작품 – Elizabeth