티스토리 뷰

카테고리 없음

mssql에 주석 넣기

진열사랑 2025. 3. 21. 12:09

MSSQL 테이블 생성 시 주석(Comment) 넣기

MSSQL에서 테이블 생성 시 주석(설명)을 추가하는 방법은 크게 두 가지가 있습니다.


🔹 1️⃣ COMMENT 문이 없기 때문에 EXEC sp_addextendedproperty 사용

MSSQL에서는 MySQL처럼 COMMENT 문을 직접 사용할 수 없고, 대신 **확장 속성(Extended Properties)**을 사용하여 주석을 추가합니다.

✅ 예제: 테이블 및 컬럼에 주석 추가

-- 테이블 생성
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,  -- 직원 ID
    Name NVARCHAR(100) NOT NULL, -- 직원 이름
    Age INT CHECK (Age >= 18),   -- 나이는 18세 이상
    Salary DECIMAL(10,2)         -- 급여
);

-- ✅ 테이블에 주석 추가
EXEC sp_addextendedproperty 
    @name = 'MS_Description', 
    @value = '직원 정보를 저장하는 테이블',
    @level0type = 'Schema', @level0name = 'dbo',  
    @level1type = 'Table',  @level1name = 'Employees';

-- ✅ 컬럼에 주석 추가 (각 컬럼별)
EXEC sp_addextendedproperty 
    @name = 'MS_Description', 
    @value = '직원의 고유 ID',
    @level0type = 'Schema', @level0name = 'dbo',  
    @level1type = 'Table',  @level1name = 'Employees',
    @level2type = 'Column', @level2name = 'EmployeeID';

EXEC sp_addextendedproperty 
    @name = 'MS_Description', 
    @value = '직원의 이름',
    @level0type = 'Schema', @level0name = 'dbo',  
    @level1type = 'Table',  @level1name = 'Employees',
    @level2type = 'Column', @level2name = 'Name';

EXEC sp_addextendedproperty 
    @name = 'MS_Description', 
    @value = '직원의 나이 (18세 이상)',
    @level0type = 'Schema', @level0name = 'dbo',  
    @level1type = 'Table',  @level1name = 'Employees',
    @level2type = 'Column', @level2name = 'Age';

EXEC sp_addextendedproperty 
    @name = 'MS_Description', 
    @value = '직원의 급여 (단위: 원)',
    @level0type = 'Schema', @level0name = 'dbo',  
    @level1type = 'Table',  @level1name = 'Employees',
    @level2type = 'Column', @level2name = 'Salary';

sp_addextendedproperty를 사용하면 테이블 및 컬럼에 주석을 추가할 수 있음


🔹 2️⃣ 주석 확인하기 (sys.extended_properties 활용)

추가한 주석을 확인하려면 sys.extended_properties 뷰를 조회하면 됩니다.

✅ 특정 테이블의 모든 주석 확인

SELECT 
    obj.name AS TableName, 
    col.name AS ColumnName, 
    ep.value AS Comment 
FROM sys.extended_properties ep
JOIN sys.objects obj ON ep.major_id = obj.object_id
LEFT JOIN sys.columns col ON ep.major_id = col.object_id AND ep.minor_id = col.column_id
WHERE obj.name = 'Employees';

✅ 특정 컬럼의 주석 확인

SELECT value 
FROM sys.extended_properties 
WHERE major_id = OBJECT_ID('Employees') 
AND minor_id = (SELECT column_id FROM sys.columns WHERE name = 'Salary' AND object_id = OBJECT_ID('Employees'));

🔹 3️⃣ 주석 수정 (sp_updateextendedproperty)

기존 주석을 변경하려면 sp_updateextendedproperty를 사용합니다.

EXEC sp_updateextendedproperty 
    @name = 'MS_Description', 
    @value = '직원의 월급 (단위: 원)',
    @level0type = 'Schema', @level0name = 'dbo',  
    @level1type = 'Table',  @level1name = 'Employees',
    @level2type = 'Column', @level2name = 'Salary';

🔹 4️⃣ 주석 삭제 (sp_dropextendedproperty)

주석을 제거하려면 sp_dropextendedproperty를 사용합니다.

EXEC sp_dropextendedproperty 
    @name = 'MS_Description', 
    @level0type = 'Schema', @level0name = 'dbo',  
    @level1type = 'Table',  @level1name = 'Employees',
    @level2type = 'Column', @level2name = 'Salary';

🔹 5️⃣ 결론

방법 설명 사용 예시

sp_addextendedproperty 테이블 및 컬럼에 주석 추가 ✅ 추천
sys.extended_properties 조회 주석 확인 ✅ 조회 가능
sp_updateextendedproperty 주석 수정 ✅ 사용 가능
sp_dropextendedproperty 주석 삭제 ✅ 삭제 가능

📌 MSSQL은 COMMENT 문을 지원하지 않으므로 sp_addextendedproperty를 사용하여 주석을 추가해야 함
📌 주석을 수정하려면 sp_updateextendedproperty, 삭제하려면 sp_dropextendedproperty 사용 🚀

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함