트랜잭션 SQL

Transact-SQL

T-SQL(Transact-SQL)은 관계형 데이터베이스와 상호 작용하기 위해 사용되는 SQL(Structured Query Language)에 대한 Microsoft 및 Sybase의 고유 확장 기능입니다.T-SQL은 SQL 표준을 확장하여 절차적 프로그래밍, 로컬 변수, 문자열 처리를 위한 다양한 지원 기능, 날짜 처리, 수학 등을 포함하며 DELETE UPDATE 에 대한 변경 사항도 포함합니다.

Transact-SQL은 Microsoft SQL Server 사용의 중심입니다.SQL Server 인스턴스와 통신하는 모든 응용 프로그램은 응용 프로그램의 사용자 인터페이스에 관계없이 서버에 Transact-SQL 문을 전송하여 이 작업을 수행합니다.

SQL Server의 저장 프로시저는 실행 가능한 서버 측 루틴입니다.저장 프로시저의 장점은 파라미터를 전달할 수 있다는 것입니다.

변수

Transact-SQL은 로컬 변수를 선언 및 설정하기 위한 다음 문을 제공합니다.DECLARE,SET그리고.SELECT.

선언하다 @var1 키보드(30); 세트 @var1 = '어떤 이름'; 선택한다. @var1 = 이름.   부터 판매의.가게   어디에 고객.아이디 = 100; 

흐름 제어

Transact-SQL 흐름 제어 키워드는 다음과 같습니다.BEGIN그리고.END,BREAK,CONTINUE,GOTO,IF그리고.ELSE,RETURN,WAITFOR,그리고.WHILE.

IF그리고.ELSE조건부 실행을 허용합니다.이 배치문은 현재 날짜가 주말이면 "It's the weekend", 현재 날짜가 평일이면 "It's weekend"로 인쇄됩니다.(주의:이 코드는 일요일이 다음 주의 첫 요일로 설정되어 있는 것을 전제로 하고 있습니다.@@DATEFIRST설정)

한다면 날짜 부품(dw, 날짜 취득()) = 7 또는 날짜 부품(dw, 날짜 취득()) = 1    인쇄하다 '주말이다.; 또 다른    인쇄하다 평일입니다.; 

BEGIN그리고.END진술의 일단을 채점을 찍다위의 예에서 조건부로 둘 이상의 스테이트먼트를 제어해야 하는 경우,BEGIN그리고.END다음과 같습니다.

한다면 날짜 부품(dw, 날짜 취득()) = 7 또는 날짜 부품(dw, 날짜 취득()) = 1 시작한다.    인쇄하다 '주말이다.;    인쇄하다 "주말에 좀 쉬세요!"; 끝.; 또 다른 시작한다.    인쇄하다 평일입니다.;    인쇄하다 '평일에 출근하라!'; 끝.; 

WAITFOR는 지정된 시간 동안 또는 하루 중 특정 시간까지 기다립니다.이 문은 지연 또는 설정 시간까지 실행을 차단하기 위해 사용할 수 있습니다.

RETURN저장 프로시저 또는 함수에서 즉시 복귀하는 데 사용됩니다.

BREAK에워싸다WHILE루프, 한편CONTINUE는 루프의 다음 반복을 실행합니다.의 예WHILE루프는 다음과 같습니다.

선언하다 @i 인트; 세트 @i = 0;  하는 동안에 @i < > 5 시작한다.    인쇄하다 '헬로우 월드';    세트 @i = @i + 1; 끝.; 

DELETE 및 UPDATE 문의 변경

Transact-SQL에서는 양쪽 모두DELETE그리고.UPDATE스테이트먼트가 확장되어 서브쿼리 없이 다른 테이블의 데이터를 조작에 사용할 수 있게 되었습니다.

  • DELETE에서 조인된 테이블을 받아들입니다.FROM절과 마찬가지로SELECT이 작업이 완료되면 조인에서 삭제할 테이블의 이름 또는 별칭이 다음 사이에 배치됩니다.DELETE그리고.FROM.
  • UPDATE허가하다FROM추가할 절입니다.갱신할 테이블은 다음 중 하나로 결합할 수 있습니다.FROM절과 에일리어스에 의해 참조되거나 표준 SQL에 따라 문의 시작 부분에서만 참조됩니다.

이 예에서는 모든 것을 삭제합니다.users'아이돌' 깃발을 단 사람들입니다.

삭제 u   부터 사용자 ~하듯이 u   내부 합류하다 user_module ~하듯이 f      u.아이디 = f.아이디     어디에 f.이름. = '실패'; 

벌크 인서트

BULK는 벌크 데이터 로드 프로세스를 구현하는 Transact-SQL 스테이트먼트입니다.테이블에 여러 행을 삽입하여 외부 시퀀셜파일에서 데이터를 읽습니다.사용방법BULK INSERT개개의 프로세스를 발행하는 것보다 퍼포먼스가 향상됩니다.INSERT추가되는 각 행에 대한 문.상세한 것에 대하여는, MSDN 를 참조해 주세요.

캐치하기

SQL Server [1]2005부터 마이크로소프트는 추가 기능을 도입했습니다.TRY CATCH예외 유형 동작을 지원하는 로직입니다.이 동작에 의해 개발자는 코드를 단순화하고 생략할 수 있습니다.@@ERROR각 SQL 실행 문 뒤에 체크합니다.

-- 트랜잭션을 시작합니다. 시작한다. 트랜;  시작한다. 해라    -- 각 스테이트먼트를 실행합니다.    삽입 안으로 마이테이블(이름.) 가치 ('ABC');    삽입 안으로 마이테이블(이름.) 가치 ('123');     -- 트랜잭션을 커밋합니다.    저지르다 트랜; 끝. 해라 시작한다. 또 만나    -- 오류로 인해 트랜잭션을 롤백합니다.    롤백 트랜; 끝. 또 만나; 

「 」를 참조해 주세요.

레퍼런스

  1. ^ 2012년 3월 19일 Jonathan Allen, infoq.com "SQL Server 2012의 T-SQL 개선"

외부 링크