MSSQL 배열, 칼럼 추가 및 테이블 정보 추출
DB에도 배열이 있습니다. 자주 사용하지 않아서 모르기도 하고 사용할 때 Java나 .net, 자바스크립트, php 같은 프로그램의 배열과는 구현이 달라서 쓰임이 별로 없을 수도 있을것입니다.
Declare @Array varchar(100)
Declare @Value varchar(10)
Set @Array = '100,200,300,400,500'
While charindex(',', @Array) <> 0 OR Len(rtrim(@Array)) > 0
begin
If (charindex(',', @Array) = 0)
Begin
set @Value = @Array
set @Array = ''
End
Else
Begin
select @Value = SubString(@Array, 0, charindex(',', @Array))
Set @Array = SubString(@Array, CharIndex(',', @Array) + 1, len(@Array))
End
PRINT(@Value)
end
테이블 칼럼에 대한 추가 스크립트는 아래와 같습니다.
ALTER TABLE 테이블명 ADD 칼럼명 VARCHAR(50);
또한, 테이블의 칼럼을 추가했는데 추가한 칼럼의 설명도 달아줘야 하겠지요.ㅎ 설명을 달아주는 스크립트 명령어는 아래와 같습니다.
EXEC sys.sp_addextendedproperty
@name=N'MS_Description'
,@value=N'설명~~~'
,@level0type=N'SCHEMA'
,@level0name=N'dbo'
,@level1type=N'TABLE'
,@level1name=N'테이블명'
,@level2type=N'COLUMN'
,@level2name=N'칼럼명'
SELECT
A.NAME AS [TABLE],
B.NAME AS [COLUMN],
C.NAME + '(' + CONVERT(VARCHAR, B.LENGTH) + ')' AS [TYPE],
D.VALUE AS [DESCRIPTION]
FROM SYSOBJECTS A
INNER JOIN SYSCOLUMNS B ON A.ID = B.ID
INNER JOIN SYS.TYPES C ON B.XTYPE = C.SYSTEM_TYPE_ID
INNER JOIN SYS.EXTENDED_PROPERTIES D ON A.ID = D.MAJOR_ID AND B.COLID = D.MINOR_ID
WHERE A.NAME = 'TB_MTS_MTRL_CFG'
ORDER BY B.COLID
이상으로 MSSQL 배열, 칼럼 추가 및 테이블 정보 추출에 대해서 알아보았습니다.
오늘도 행복하고 좋은 하루 되세요~~~^^
하지만, 꼭 필요하다면 charindex를 사용하시면 됩니다.
하여 오늘은 MSSQL 배열, 칼럼 추가 및 테이블 정보 추출에 대해서 알아보겠습니다.
▶ 배열
Declare @Array varchar(100)
Declare @Value varchar(10)
Set @Array = '100,200,300,400,500'
While charindex(',', @Array) <> 0 OR Len(rtrim(@Array)) > 0
begin
If (charindex(',', @Array) = 0)
Begin
set @Value = @Array
set @Array = ''
End
Else
Begin
select @Value = SubString(@Array, 0, charindex(',', @Array))
Set @Array = SubString(@Array, CharIndex(',', @Array) + 1, len(@Array))
End
PRINT(@Value)
end
▶ 칼럼 추가 및 테이블 정보 추출
테이블에 대한 칼럼 추가를 디자이너를 통해서 할 수도 있지만 개발할 때 스크립트로 작업을 해놓으면 운영에 배포 할 때 실행 버튼(F5) 한번만 눌러주면 되니 편리 합니다.테이블 칼럼에 대한 추가 스크립트는 아래와 같습니다.
ALTER TABLE 테이블명 ADD 칼럼명 VARCHAR(50);
또한, 테이블의 칼럼을 추가했는데 추가한 칼럼의 설명도 달아줘야 하겠지요.ㅎ 설명을 달아주는 스크립트 명령어는 아래와 같습니다.
EXEC sys.sp_addextendedproperty
@name=N'MS_Description'
,@value=N'설명~~~'
,@level0type=N'SCHEMA'
,@level0name=N'dbo'
,@level1type=N'TABLE'
,@level1name=N'테이블명'
,@level2type=N'COLUMN'
,@level2name=N'칼럼명'
▶ 테이블 정보 추출
산출물을 작성한다던지 개발을 할 때 필요한 테이블의 칼럼들에 대한 정보를 알면 엄청나게 작업이 쉬워 집니다. 아래의 쿼리를 실행하시면 테이블에 대한 정보와 테이블에 칼럼에 대한 정보를 한눈에 알수 있습니다.SELECT
A.NAME AS [TABLE],
B.NAME AS [COLUMN],
C.NAME + '(' + CONVERT(VARCHAR, B.LENGTH) + ')' AS [TYPE],
D.VALUE AS [DESCRIPTION]
FROM SYSOBJECTS A
INNER JOIN SYSCOLUMNS B ON A.ID = B.ID
INNER JOIN SYS.TYPES C ON B.XTYPE = C.SYSTEM_TYPE_ID
INNER JOIN SYS.EXTENDED_PROPERTIES D ON A.ID = D.MAJOR_ID AND B.COLID = D.MINOR_ID
WHERE A.NAME = 'TB_MTS_MTRL_CFG'
ORDER BY B.COLID
이상으로 MSSQL 배열, 칼럼 추가 및 테이블 정보 추출에 대해서 알아보았습니다.
오늘도 행복하고 좋은 하루 되세요~~~^^
댓글
댓글 쓰기