티스토리 뷰
SQL Server 2012의 강화된 T-SQL: 시퀀스(Sequence)
SQL Server 2012의 시퀀스에 대한 내용을 알아보도록 하겠습니다. 이전버전에서는 IDENTITY 라는 속성을 통해 순차적인 일련번호를 생성했습니다. 새롭게 시퀀스라는 개체가 제공되어 일련번호를 효과적으로 사용할 수 있을 것 같은데 아래에서 한번 살펴보도록 하겠습니다.
먼저 아래와 같이 데이터베이스에 테이블을 생성합니다.
CREATE TABLE Products
(
ProductID INT NOT NULL PRIMARY KEY
,Name VARCHAR(200) NULL
,ModifiedDate DATETIME DEFAULT GETDATE()
);
Products 테이블에 ProductID를 일련번호로 생성하기 위해서는 IDENTITY를 사용했지만 별도의 시퀀스(Sequence) 개체를 아래와 같이 생성할 수 있습니다.
CREATE SEQUENCE PIdSequence AS INT
START WITH 1
INCREMENT BY 1;
초기값 1 , 증가값 1로 시퀀스(Sequence) 개체를 생성했습니다. 생성된 개체는 개체탐색기의 프로그래밍 기능, 시퀀스에서 살펴볼 수 있습니다.
시퀀스(Sequence)의 개체를 더블 클릭하면 아래와 같은 대화 상자를 볼 수 있는데 현재 값이나 다시 시작 순서, CACHE 에 대한 내용을 알 수 있습니다.
INSERT 구문 등에서 NEXT VALUE FOR PIdSequence 를 사용하면 됩니다.
INSERT INTO Products (ProductID, Name)
VALUES (NEXT VALUE FOR PIdSequence, 'Coffece');
위 구문을 여러 번 실행하여 Products를 여러 개를 입력한 결과는 아래와 같습니다.
/*
1 Coffece 2012-03-19 09:54:00.327
2 Coffece 2012-03-19 09:54:00.913
3 Coffece 2012-03-19 09:54:01.400
4 Coffece 2012-03-19 09:54:01.853
5 Coffece 2012-03-19 09:54:02.277
*/
l 위에서 생성한 시퀀스(Sequence) 개체는 Products 테이블에만 종속된 것은 아니며 다른 테이블에서도 사용이 가능합니다. 다른 테이블에서 사용하면 해당 값은 증가되며 증가된 값을 계속 사용하게 됩니다.
NEXT VALUE FOR PIdSequence 을 실행할 경우 시퀀스(Sequence) 값은 증가하게 됩니다.
l 중간에 값이 비어 있는 경우 SET IDENTITY_INSERT 옵션을 쓰지 않고 누락된 값을 INSERT 하면 됩니다.
l 현재 값을 알려면 아래 구문을 실행할 수 있습니다.
SELECT cache_size, current_value
FROM sys.sequences
WHERE name = 'PIdSequence' ;
l 복제, SSIS 등의 경우 시퀀스(Sequence)를 사용할 경우 더 효과적으로 사용이 가능합니다.
l CACHE 옵션이 있어 대용량 데이터를 처리하는 일련번호일 경우 Sequence가 우수할 것으로 보입니다.
'SQL' 카테고리의 다른 글
SQL Server 2012에서의 FORMAT 함수 (0) | 2012.04.04 |
---|---|
SQL Server 2012 T-SQL: CHOOSE, IIF 논리함수 (0) | 2012.03.28 |
SQL Server 2012의 강화된 T-SQL : 페이징 - OffSet/Fetch (0) | 2012.03.14 |
SQL Server 2012 RTM (0) | 2012.03.07 |
Hadoop (0) | 2012.02.13 |
- Total
- Today
- Yesterday
- hongju
- 페이지를 매긴 보고서
- 업데이트
- SharePoint Object Model
- Power BI Desktop 업데이트
- sharepoint
- sql server 2012
- Power BI Copilot
- 클라우드
- 목표
- SQL Azure
- Power BI 업데이트
- Power BI Desktop Update
- Power BI Desktop
- Windows Azure 업데이트
- Power BI
- Windows Azure Mobile Services
- 정홍주
- Cloud
- SharePoint 2013
- Windows Azure
- Windows Phone 7
- Microsoft Fabric
- copilot
- redJu
- SharePoint Online
- Paginated Report
- Visual Studio 2010
- SharePoint 2010
- Power BI Update
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |