티스토리 뷰

SQL Database V12 – SQL CLR

 

SQL Server 에서 지원되는 SQL CLR AzureSQL Database V12 에서도 지원합니다. SQL CLR을 많이 사용하지 않을 수 도 있지만 SQL Server 2014의 프로그래밍 관련 내용이 SQL Database V12에서도 지원되는 것을 확인할 수 있습니다.

SQL Database V12의 새로운 내용에 대한 사항은 아래 링크를 참고할 수 있습니다.

https://azure.microsoft.com/en-us/documentation/articles/sql-database-v12-whats-new/

 

SQL CLR을 생성하기 위해서 Visual Studio에서 프로젝트를 생성할 수 있습니다. Visual Studio에는 최신 SSDT(SQL Server Database Tools)가 설치되어 있어야 합니다.

https://msdn.microsoft.com/en-us/dn864412

 

1.     SQL Server 프로젝트를 생성합니다.

 

2.     프로젝트를 생성하고 나면 프로젝트 설정으로 이동하여 대상 플랫폼을 Azure SQL Database V12로 지정합니다. Azure SQL Database V12가 나오지 않는다면 SSDT 최신 버전이 설치되지 않을 것입니다. 빌드해도 오류가 발생합니다. (SQLBuildTask)

 

3.     SQL CLR에 대한 항목을 추가하여 코드를 작성합니다. 아래는 해당 서버 버전을 반환하는 SQL CLR 저장 프로시저 내용입니다.

     [Microsoft.SqlServer.Server.SqlProcedure]

    public static void SendReaderToClient()

    {

        using (SqlConnection connection = new SqlConnection("context connection=true"))

        {

            connection.Open();

            SqlCommand command = new SqlCommand("select @@version", connection);

            SqlDataReader r = command.ExecuteReader();

            SqlContext.Pipe.Send(r);

        }

    }

 

 

4.      코딩 작업을 완료했다면 스크립트를 생성하여 T-SQL 구문을 실행할 수 있습니다. 프로젝트를 오른쪽 클릭하여 게시를 선택합니다. 게시 창에서는 Azure SQL Database V12를 연결하여 설정해줍니다.

5.      아래와 같이 게시 SQL 스크립트를 확인할 수 있습니다.


6.      Azure Database V12에 연결하여 스크립트를 실행하여 어셈블리를 생성하고 SQL CLR 저장 프로시저를 생성할 수 있습니다. 시스템 뷰를 통해 어셈블리를 확인할 수 있습니다.

7.      SQL CLR 저장 프로시저를 호출하여 결과를 확인해볼 수 있습니다.

EXEC [dbo].[SendReaderToClient]

--Microsoft SQL Azure (RTM) - 12.0.2000.8 Jun 12 2015 15:07:27 Copyright (c) Microsoft Corporation

 

 

 

이상으로 간단히 Azure SQL Database V12에서 SQL CLR 지원을 확인해보았습니다.

 

댓글