트랜잭트 SQL

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

트랜잭트 SQL(Transact-SQL, T-SQL)은 SQL(구조 질의어)에 대한 마이크로소프트사이베이스의 사유 확장으로, 선언문을 이용하여 관계형 데이터베이스를 조회하고 변경하고 정의하기 위해 본래 IBM이 개발한 표준화된 컴퓨터 언어이다. T-SQL은 SQL 표준 상에서 확장하여 문자열 처리, 날짜 처리, 계산 등을 위한 다양한 지원 함수, DELETEUPDATE 문에 대한 변경, 절차적 프로그래밍, 지역 변수를 포함한다. 이러한 부가 기능들은 트랜잭트 SQL을 튜링 완전으로 만든다.

트랜잭트 SQL은 마이크로소프트 SQL 서버 사용 시에 주요하다. SQL 서버 인스턴스와 통신하는 모든 애플리케이션들은 애플리케이션의 사용자 인터페이스에 관계 없이 트랜잭트 SQL 문을 서버에 송신함으로써 이 일을 처리한다.

변수[편집]

트랜잭트 SQL의 흐름 제어 키워드로 BEGIN / END, BREAK, CONTINUE, GOTO, IF / ELSE, RETURN, WAITFOR, WHILE이 있다.

IF와 ELSE
IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
   PRINT 'It is the weekend.'
ELSE
   PRINT 'It is a weekday.'
BEGIN과 END
IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1
BEGIN
   PRINT 'It is the weekend.'
   PRINT 'Get some rest on the weekend!'
END
ELSE
BEGIN
   PRINT 'It is a weekday.'
   PRINT 'Get to work on a weekday!'
END
WHILE
DECLARE @i INT
SET @i = 0
 
WHILE @i < 5
BEGIN
   PRINT 'Hello world.'
   SET @i = @i + 1
END

DELETE, UPDATE 문 변경[편집]

Idle 플래그에 속하는 모든 users 삭제의 예는 다음과 같다.

DELETE users 
  FROM users AS u
  INNER JOIN user_flags AS f
    ON u.id = f.id
WHERE f.name = 'idle'

BULK INSERT[편집]

BULK INSERT는 대량의 데이터 적재 처리, 여러 줄을 테이블로 삽입, 외부 시퀀스 파일로부터 데이터 읽기를 구현하는 트랜잭트 SQL 문이다.

TRY CATCH[편집]

SQL 서버 2005를 기점으로 마이크로소프트는 TRY CATCH 추가 로직을 도입하여 예외 형 동작을 지원한다. 이러한 동작은 개발자들이 자신들의 코드를 단순화할 수 있게 하고 각 SQL 실행문 이후에 @@ERROR 검사를 남길 수 있게 한다.

-- begin transaction
BEGIN TRAN
 
BEGIN TRY
   -- execute each statement
   INSERT INTO MYTABLE(NAME) VALUES ('ABC')
   INSERT INTO MYTABLE(NAME) VALUES ('123')
 
   -- commit the transaction
   COMMIT TRAN
END TRY
BEGIN CATCH
   -- rollback the transaction because of error
   ROLLBACK TRAN
END CATCH

같이 보기[편집]

바깥 고리[편집]