티스토리 뷰
인덱스된 뷰(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
'SQL Server' 카테고리의 다른 글
디스크 공간 없을 경우에 로그백업 하는 방법 – NUL Device 사용 (0) | 2015.10.26 |
---|---|
Database Size Limited ON SQL Server Express (0) | 2015.10.22 |
SSMS 쿼리 결과탭 없이 구문검사만 하고 싶을땐 (0) | 2015.10.08 |
오픈 트랜잭션 쿼리가 있는 데이터베이스 찾아보기 (0) | 2015.09.14 |
SQL Server 다양한 와일드카드와 LIKE 연산자의 쓰임새 (0) | 2015.09.09 |
- Total
- Today
- Yesterday