SQL Server .Net Integration

 

처음 소개 되는 내용은 SQL Server 2000에서 xp_...로 시작하는 외부 DLL을 사용하는 sp를 만들어 보셨거나, 알고 계실 겁니다.

거기에 해당되는 내용입니다. .Net을 이용해 DLL을 만든 후 SQL Server 2005에서 사용하는 방법에 대해 배웁니다.

 

간략하게 사용 하기 위한 절차를 보면,

-         Dll 파일(assembly라고 부릅니다.), assembly SQL Server 2005 cataloging(등록하는 거라고 생각하시면 됩니다.)합니다.

-         등록된 assembly를 이용하여 UDF(User Define Function)을 만듭니다.

 

Assembly는 세가지 레벨의 permission을 가집니다.

-         Safe (Default)

-         External access : network이나 file system을 접근하는 경우

-         Unsafe : WIN32 DLL이나 COM Object call하는 경우

 

Assembly dependencies

-         등록하는 Assembly가 참조하는 다른 dll이 있다면 그 DLL 역시 SQL Server에 자동으로 cataloging이 됩니다. 단 자동으로 등록된 assembly default visible 값이 0이므로, object explorer에서는 보이지 않고, sys_assemblies 테이블을 직접 select 해야 보입니다.

-         Visible 속성값을 1로 바꿔 보이게 하여 사용할 수도 있습니다.

 

 

그럼 간략하게 만드는 방법을 보면

일단 예제 코드를 보면

namespace Math

{

             public class Inverter

{

             public static int Invert(int x)

{

return -x

}

            

}

}

 

이렇게 만들어 컴파일 한 후,

 

SQL Server 2005에서 위에 설명한 절차대로 등록을 합니다.

 

CREATE ASSEMBLY MetricConverter

FROM 'c:\test\Math.dll'

 

 

CREATE FUNCTION dbo.FahrenheitToCentigrade(@i float)

RETURNS float

EXTERNAL NAME Math.[Math .Inverter].Invert

 

이렇게 한 후

SELECT Invert(10)

하면 -10이 리턴되는 걸 볼 수 있습니다.

 

간단하죠?

 

일단 간략한 소개는 여기까지~~

 

+ Recent posts