티스토리 뷰

 

SQL Database V12 – T-SQL 지원 강화

 

SQL Database V12T-SQL 지원 강화에 대한 내용을 알아보겠습니다. 사실 V11에서 일반적인 OLTP에서 사용하는 대부분의 T-SQL(OffSet 페이징 쿼리 등)은 지원을 하고 있었으며 V12에서 T-SQL 지원의 변경사항은 크지 않은 것 같습니다.

SQL Database V12에 대한 내용은 아래 링크를 참고하십시오.

http://azure.microsoft.com/en-us/documentation/articles/sql-database-preview-whats-new/

 

ALTER TABLE 구문 일부, 분할된 테이블, XML 인덱스, 온라인 인덱스, SQL CLR 지원 등에 대한 내용이 변경되었습니다. 간단히 아래에서 Heap 지원, Windows 함수에 대한 내용을 다루어 보겠습니다.

l  Heap

Heap(클러스터 인덱스가 없는 테이블)의 경우 V12에서는 생성이 가능합니다. 복제 등에 참여하고 있는 경우 제한될 수 있습니다. 아래 구문을 V11에서 실행하면 오류가 발생합니다.

 

CREATE TABLE Heap

(ID INT

,Name NVARCHAR(30) )

GO

INSERT Heap VALUES (1, N'Name')

 

Tables without a clustered index are not supported in this version of SQL Server. Please create a clustered index and try again.

 

V12에서는 INSERT가 잘되는 것을 확인할 수 있습니다. 

 

l  Windows 함수

자주 쓰는 OffSet, OVER 절에 대한 내용은 V11에서도 잘 사용했었습니다. 특히 페이징 쿼리는 유용하게 사용했었습니다. V12에서 LEAD, LAG 등의 함수가 지원된다는 것이 T-SQL 지원 강화에서의 내용입니다.

아래 LEAD 구문을 V11에서 실행하면 오류가 발생합니다.

SELECT BusinessEntityID

, YEAR(QuotaDate) AS SalesYear

, SalesQuota AS CurrentQuota,

    LEAD(SalesQuota, 1,0) OVER (ORDER BY YEAR(QuotaDate)) AS NextQuota

FROM Sales.SalesPersonQuotaHistory

WHERE BusinessEntityID = 275

and YEAR(QuotaDate) IN ('2005','2006');

 

Keyword or statement option 'lead' is not supported in this version of SQL Server.

 

V12에서는 잘 실행되는 것을 알 수 있습니다. 


T-SQL 지원 강화에서는 OLTP의 대부분의 쿼리를 V11에서 지원하고 있었으며 일부 강화된 내용을 V12에서 확인 가능합니다.

 

댓글