SSMS에서 디자인보기를 지원하지 않는경우 (도커로만든 DB의 경우 그렇다.)
테이블 구조를 보기에 쉽지 않다.
그래서 테이블 컬럼에대한 설명을 좀 봤으면 좋겠는데..
구글링을 해보니까 그런 스크립트가 있다.
그런데 내용이 많아서 전부 타이핑하기 귀찮으니까 함수로 만들어서 사용한다.
제약조건이나.. 키설명도 같이 표시할수는 없을까나...
[내용]
db에서 테이블 목록보기는
SELECT * FROM INFORMATION_SCHEMA.TABLES;
요로코롬.. 그리고..
테이블 필드의 목록과 자료형 설명을 표시하려면 쿼리가 길어지니까
차라리 함수로 만들어서 리턴하는게 와방임..
다음과 같이 함수 생성 스크립트 작성
CREATE FUNCTION [dbo].[TableDesc](@TABLE_NAME NVARCHAR(50))
RETURNS TABLE
AS
RETURN
(
SELECT D.COLORDER AS COLUMN_IDX -- Column Index
, A.NAME AS TABLE_NAME -- Table Name
, C.VALUE AS TABLE_DESCRIPTION -- Table Description
, D.NAME AS COLUMN_NAME -- Column Name
, E.VALUE AS COLUMN_DESCRIPTION -- Column Description
, F.DATA_TYPE AS TYPE -- Column Type
, F.CHARACTER_OCTET_LENGTH AS LENGTH -- Column Length
, F.IS_NULLABLE AS IS_NULLABLE -- Column Nullable
, F.COLLATION_NAME AS COLLATION_NAME -- Column Collaction Name
FROM sys.sysobjects A WITH (NOLOCK)
INNER JOIN sys.sysusers B WITH (NOLOCK) ON A.UID = B.UID
INNER JOIN sys.syscolumns D WITH (NOLOCK) ON D.ID = A.ID
INNER JOIN INFORMATION_SCHEMA.COLUMNS F WITH (NOLOCK)
ON A.NAME = F.TABLE_NAME
AND D.NAME = F.COLUMN_NAME
LEFT OUTER JOIN sys.extended_properties C WITH (NOLOCK)
ON C.MAJOR_ID = A.ID
AND C.MINOR_ID = 0
AND C.NAME = 'MS_Description'
LEFT OUTER JOIN sys.extended_properties E WITH (NOLOCK)
ON E.MAJOR_ID = D.ID
AND E.MINOR_ID = D.COLID
AND E.NAME = 'MS_Description'
WHERE 1=1
AND A.TYPE = 'U'
AND A.NAME = @TABLE_NAME
)
GO
댓글 없음:
댓글 쓰기