본 게시물은 개인적인 의견으로 작성되었으니 절대적인 정보가 아닐 수 있습니다. 참고만 하시고 궁금한 사항이 있으시면 연락주세요.

티스토리 뷰

인덱스된 뷰(INDEXED VIEW)를 생성시 다른 데이터베이스의 테이블을 참조하여 생성을 하려고 하면 오류가 발생이 된다. By Design 이므로 생성할 수 없는 듯 싶다.

오류문구를 자세히 보면 "이름은 두 부분으로 구성되어야 하며 개체는 자체 참조할 수 없습니다

" Two-part만 가능하다는 것으로 보인다.

아래 예제로 확인하면 된다.

-- Create DB

USE MASTER

GO

CREATE DATABASE TD1

CREATE DATABASE TD2

GO

 

USE TD1

GO

CREATE TABLE TBL1 (COL1 INT)

GO

 

USE TD2

GO

CREATE TABLE TBL2 (COL1 INT)

GO

 

 

USE TD1

GO

-- Create View

CREATE VIEW CrossDBView

WITH SCHEMABINDING

AS

    SELECT COL1

    FROM TD2.dbo.TBL2

    GO

 

 

/*

-- 오류발생함.

메시지 4512, 수준 16, 상태 3, 프로시저 CrossDBView, 줄 25

이름 'TD2.dbo.TBL2'이(가) 스키마 바인딩에 적합하지 않으므로 뷰 'CrossDBView'을(를) 스키마 바인딩할 수 없습니다. 이름은 두 부분으로 구성되어야 하며 개체는 자체 참조할 수 없습니다.

 

Error:

Msg 4512, Level 16, State 3, Procedure CrossDBView, Line 4

Cannot schema bind view 'CrossDBView' because name 'TD2.dbo.TBL2' is invalid for schema binding. Names must be in two-part format and an object cannot reference itself.

*/

 

-- Clean up

USE TD1

GO

 

DROP VIEW CrossDBView

GO

 

USE MASTER

GO

DROP DATABASE TD1

DROP DATABASE TD2

GO

 

 

댓글
댓글쓰기 폼
1 ··· 196 197 198 199 200 201 202 203 204 ··· 335