복붙노트

[SQL] 더블 도트 테이블 규정

SQL

더블 도트 테이블 규정

나는 외부 공급 업체에서 개발 한 새로운 데이터베이스 스키마에서 찾고 있어요. 두 개의 데이터베이스가 있습니다 :

Database1
Database2

그들은 나에게 두 데이터베이스 간의 테이블을 조인 SQL 문을 보냈습니다. 그들은 이중 점 표기법을 사용한 장소가있다. 나는 전에 본 적이 없다. (이 그들이 나를 보내신 문이 아닌) 아래의 SQL 문을 참조하십시오 :

select * from database2..Person

성명은 위의 database1에서 실행됩니다. 왜 두 개의 점을 가지고 있습니까? 나는 점 중 하나를 제거하면 다음 쿼리가 실행되지 않습니다.

나는 약간의 인터넷 검색을 수행하고이 건너 온 한 : http://www.sqlservercentral.com/Forums/Topic585446-338-1.aspx. 이것은 스키마를 참조한다 제안한다. 하나:

해결법

  1. ==============================

    1.이 점 덕분에, 기본 스키마 (DBO)는 쿼리에 대한 선택됩니다.

    이 점 덕분에, 기본 스키마 (DBO)는 쿼리에 대한 선택됩니다.

    두 개의 데이터베이스가 때 테이블의 전체 경로를 제공해야합니다. 우리는 경우 : Database1 스키마 : DBO, 손님 테이블 dbo.A, 손님 : DATABASE2 스키마 : DBO, 손님 테이블 dbo.B, 손님 : B

    우리는 같은 SELECT 문을 작성하는 경우 :

    우리는 dbo.B 테이블에서 데이터를 선택하는 우리는 스키마를 지정하고자하는 경우 우리는 다음과 같이 참조 할 필요가

    select * from Database2.schemaname.tablename
    

    편집하다: 동료가 지적한 바와 같이, 기본 스키마 그러나이 특정 예에서 dbo가 될 것으로 보인다, 데이터베이스에 변경 될 수 있습니다 :)

  2. ==============================

    2.이것은 데이터베이스 스키마입니다. 테이블의 전체 세 부분으로 된 이름은 다음과 같습니다

    이것은 데이터베이스 스키마입니다. 테이블의 전체 세 부분으로 된 이름은 다음과 같습니다

    databasename.schemaname.tablename
    

    사용자의 기본 스키마를 들어, 당신은 또한 스키마 이름을 생략 할 수 있습니다 :

    databasename..tablename
    

    또한 연결된 서버 이름을 지정할 수 있습니다 :

    servername.databasename.schemaname.tablename
    

    당신은 MSDN에 테이블 이름과 같은 식별자를 사용하는 방법에 대한 자세한 내용을보실 수 있습니다

  3. from https://stackoverflow.com/questions/34786049/double-dot-table-qualifier by cc-by-sa and MIT license