반응형

컬럼 추가

ALTER TABLE ${TALBE_NAME} ADD ${COLUMN_NAME} ${COLUMN_TYPE}

  1. NULL 허용
    • ExampleALTER TABLE BOARD ADD SECURITY CHAR(1) NULL;
  2. NULL 허용하지 않음(기본값 설정)
    • ExxampleALTER TABLE BOARD ADD SECURITY CHAR(1) NOT NULL CONSTRAINT DF_ADDR DEFAULT 'N';

컬럼 수정

ALTER TABLE ${TABLE_NAME} ALTER COLUMN ${COLUMN_NAME} ${COLUMN_TYPE}

  • ExampleALTER TABLE BOARD ALTER COLUMN SECURITY VARCHAR(1) NULL;

컬럼명 수정

EXEC SP_RENAME '${TABLE_NAME.[OLD_COLUMN_NAME]}', '${NEW_COLUMN_NAME}', 'COLUMN'

  • ExampleEXEC SP_RENAME 'BOARD.[SECURITY]', 'NEW_SECURITY', 'COLUMN';

컬럼 삭제ALTER TABLE ${TABLE_NAME} DROP COLUMN ${COLUMN_NAME}

  • ExampleALTER TABLE BOARD DROP COLUMN SECURITY;

 

출처 : https://mcpaint.tistory.com/194

반응형
반응형

원본 : http://cafe.naver.com/devweb.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=32

분류 데이터 타입 범위 저장소크기
정수 Bit O 또는 1 bit
Int -2,147,483,648 ~ 2,147,483,647 4 바이트
Smallint -32,768 ~ 32,767 2 바이트
Tinyint 0 ~ 255 1 바이트
Bigint -2^63 ~ 2^63-1 8 바이트
부동소수점 Float[n] -1.79E+308 ~ 1.79E+308 
n = 1~24
4 바이트
Float[n] -1.79E+308 ~ 1.79E+308 
n = 25~53
8 바이트
Real -3.40E + 38 ~ 3.40E + 38 4 바이트
문자데이터 char[n] n = 1~8000 n 바이트
Varchar[n]

n = 1~8000

varchar [ ( n | max ) ]

max는 최대 저장소 크기가 2^31-1바이트임

입력한 데이터의 길이
Text 최대 2,147,483,647자의 가변길이  
유니코드 
문자데이터
Nchar n = 1~4000 n*2 바이트
nvarchar

n = 1~4000

nvarchar [ ( n | max ) ]

max는 최대 저장소 크기가 2^31-1바이트임

입력한 데이터의 길이*2 바이트
Ntext 최대 1,073,741,823자의 가변길이  
이진데이터 binary n = 1~8000 n+4 바이트
varbinary

n = 1~8000

varbinary [ ( n | max) ]

max는 최대 저장소 크기가 2^31-1바이트임

입력한 데이터의 길이+4 바이트
Image 최대 2,147,483,647자의 가변길이  
날짜와시간 datetime 1753/1/1~9999/12/31 8 바이트
smalldatetime 1900/1/1~2079/6/6 4 바이트
화폐 money -922,337,203,685,477.5808~ +922,337,203,685,477.5807 8 바이트
smallmoney -214,748.3648~214,748.3647 4 바이트


기타 데이터 형식

decimal , numeric, cursor, timestamp, sql_variant, uniqueidentifier, table, xml


 

msdn 글~

text, ntext 및 image 데이터 형식 대신 varchar(max), nvarchar(max) 및 varbinary(max) 데이터 형식을 사용합니다.


ntext, text 및 image 데이터 형식은 Microsoft SQL Server 의 다음 버전에서 제거될 예정입니다. 향후 개발 작업에서는 이 데이터 형식을 사용하지 않도록 하고 현재 이 데이터 형식을 사용하는 응용 프로그램은 수정하십시오. 대신 nvarchar(max), varchar(max) 및 varbinary(max)를 사용합니다. 자세한 내용은 큰 값 데이터 형식 사용을 참조하십시오.

 

반응형
반응형

SET NOCOUNT란? 

쿼리문 또는 프로시저의 영향을 받은 행 수를 나타내는 메시지가 결과 집합의 일부로 반환되지 않도록 하는것

구문 : SET NOCOUNT{ON/OFF}

 

사용하는 이유 

MSSQL에서 프로시저를 만들경우 프로시저의 속도(성능)에 대해서 생각을 안할 수 없습니다.

프로시저의 속도가 프로그램의 속도에 밀접한 관련이 있는만큼

프로시저의 성능에 대해 초점을 맞추고 쿼리문을 짜야합니다.

이번 포스팅에서는 SET NOCOUNT라는 함수를 사용하여

쿼리문의 속도를 향상시키는 방법에 대해 알아보겠습니다.

 

MSSQL에서 프로시저를 만들고 실행을 해보면

 

 

위와 같은 메시지를 보신적이 있으실텐데요.

위 메시지는 INSERT나 UPDATE DELETE 처럼 테이블에 영향을 주게되면 출력이 됩니다.

하지만 위에 보이는 0개행이 영향을 받았다는 메시지는 전혀 필요가 없죠

괜히 메시지를 출력하는데 서버 부하만 걸릴뿐입니다.

이 메시지는 프로시저 시작점에 SET NOCOUNT ON이라는 문구를 삽입해줌으로써 제거해줄 수 있습니다.

 

예제 

CREATE PROCEDURE PROC_NAME
(
    COMPANY NVARCHAR(7),--회사
    NO_TRAN NVARCHAR(20), --전표번호
    PLANT NVARCHAR(7), --공장
    DT_TRAN NVARCHAR(8) --작업일
)
AS
BEGIN
SET NOCOUNT ON 

    INSERT INTO EX_TABLE(CD_COMPANY,NO_TRAN,CD_PLANT,,DT_TRAN)
    VALUES(@P_CD_COMPANY,@P_NO_TRAN,@P_CD_PLANT,@P_DT_TRAN)

SET NOCOUNT OFF
RETURN
END;

 

이렇게 해주면 1개의 메시지만 출력이 됩니다.

반응형
반응형

MSSQL에서 반복문 While 쓸때 주의할점,,

 

Case 1.

 

DECLARE @AA INT, @BB INT
SET @AA = 0
SET @BB = 0
WHILE @AA < 10
SET @AA = @AA + 1
SET @BB = @BB + @AA
SELECT @BB
GO 

 Case 2.

DECLARE @AA INT, @BB INT
SET @AA = 0
SET @BB = 0
WHILE @AA < 10
BEGIN
SET @AA = @AA + 1
SET @BB = @BB + @AA
END
SELECT @BB
GO

 Case 1. 과 Case 2. 의 차이점은 무엇일까??

일단 BEGIN ~ END 의 있고 없고의 차이인데, 여기에 따라서 결과가 엄청나게 달라지니

 

Case 1.

 

 

Case 2.

 

 

이 둘의 차이는,

 

Case 1. 처럼 BEGIN ~ END 문이 없다면, WHILE문 바로 아래의 한줄만 WHILE에 걸려 조건이 해당될때까지 계속 반복되고,,

Case 2. 처럼 BEGIN ~ END 문이 있다면, 그 사이의 모든 구문이 WHILE에 걸려 반복이 된다.

 

출처 : http://blog.naver.com/PostView.nhn?blogId=dlzmstks&logNo=172443221&parentCategoryNo=&categoryNo=11&viewDate=&isShowPopularPosts=true&from=search

반응형

+ Recent posts