CLR 등록 및 활성화 하기
- Version : SQL Server 2005, 2008, 2008R2, 2012
SQL Server 2005 부터 Microsoft Windows .NET Framework 의 CLR(공용 언어 런타임) 을 제공 한다. 이를 통하여 Visual Basic .NET 및 Visual C#을 포함한 모든 .NET Framework 언어를 사용하여 저장 프로시저, 트리거, 사용자 정의 형식, 사용자 정의 함수, 사용자 정의 집계 및 다양한 함수를 만들 수 있다.
[CLR 활성화]
Clr enabled 옵션을 사용하여 SQL Server에서 사용자 어셈블리를 실행 여부를 지정 한다.
설정 변경 후 WOW64 모드를 제외한 경우 서버를 재시작 하지 않아도 된다.
값 | 설명 |
0 | 사용자 어셈블리 사용 안 함 |
1 | 사용자 어셈블리 사용 |
SP_CONFIGURE 'SHOW ADVANCED OPTIONS', 1 GO
RECONFIGURE WITH OVERRIDE GO
SP_CONFIGURE 'CLR ENABLED', 1 GO
RECONFIGURE WITH OVERRIDE GO |
[Assembly 등록]
함수를 처리할 DLL 파일을 어셈블리에 등록하여야 한다.
BEGIN TRY DROP ASSEMBLY SHA END TRY BEGIN CATCH END CATCH GO
CREATE ASSEMBLY SHA FROM 'D:\SHA.DLL' GO |
[함수 만들기]
함수를 만들어서 정상적으로 동작 하는 지 알아 보자. 우선 일반적으로 함수를 만들 듯 function 문법을 사용한다. 외부 파일을 호출 할 수 있는 문법이 추가 된다. 실습에 사용된 DLL의 기능은 입력된 문자를 SHA 512로 반환하는 함수 이다.
BEGIN TRY drop function rf_Sha512 END TRY BEGIN CATCH END CATCH
go Create Function rf_Sha512 ( @Input nvarchar(128) )returns nvarchar(128)as External Name Sha.UserDefinedFunctions.Sha512 go
select dbo.rf_Sha512('1234') go |
SQL Server에서 지원하지 않는 기능이다 외부 스크립트를 사용하여야 할 때 매우 유용한 기능 인듯 하다.
2013-01-02 / 강성욱 / http://sqlmvp.kr
'SQL Server > SQL Server Tip' 카테고리의 다른 글
Change Data Capture(CDC) – 변경 이력 추적 (0) | 2015.07.20 |
---|---|
SSMS 에서 디버깅 하기 (0) | 2015.07.20 |
SQL Server 확장 이벤트를 사용한 Tempdb 병목현상 추적 (0) | 2015.07.20 |
MAXDOP 설정 (0) | 2015.07.20 |
SQL Server 이름 변경 하기 (0) | 2015.07.20 |