● 스키마
- 데이터베이스 내에 있는 모든 개체(테이블, 뷰, 인덱스, 트리거, 프로시저 등)의 정식 명칭을 살펴보면 다음과 같은 형식을 갖는다.
데이터베이스_이름.스키마_이름.개체_이름
ex) CREATE TABLE [서버이름다를경우 서버 이름].tableDB.dbo.myTbl (id int);
- 여기서 스키마는 데이터베이스 내에 있는 개체들을 관리하는 묶음이라고 생각하면 된다
-- 테이블이 서로 다른 스키마에 생성
-- 실습용 데이터베이스 생성
USE tempdb;
CREATE DATABASE schemaDB;
-- 스키마를 2개 만든다
USE schemaDB;
GO
CREATE SCHEMA userSchema;
GO
CREATE SCHEMA buySchema;
-- 테이블을 생성하는데 스키마를 지정해서 생성한다.
CREATE TABLE userSchema.userTBL (id int);
CREATE TABLE buySchema.buyTBL (id int);
CREATE TABLE buySchema.prodTBL (id int);
-- 위와 같이 테이블을 생성했다면 테이블에 접근할 때
-- 그냥 테이블 이름만으로는 접근할 수 없으며 반드시 '스키마.테이블'을 사용해야한다.
SELECT * FROM userTBL; -- (X)
SELECT * FROM userSchema.userTBL; -- (O)
--------------------------------------------
메시지 208, 수준 16, 상태 1, 줄 108
개체 이름 'userTBL'이(가) 유효하지 않습니다.
완료 시간: 2021-08-17T12:18:55.6942695+09:00
--------------------------------------------
'프로그래밍 > Database' 카테고리의 다른 글
[Database] 저장 프로시저 예시 (0) | 2021.08.17 |
---|---|
[Database] 트랜잭션의 예시 (0) | 2021.08.17 |
[Database] 임시 테이블 (0) | 2021.08.17 |
[Database] 스파스 열 (0) | 2021.08.17 |
[Database] 조인(JOIN) (0) | 2021.08.11 |