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이 리턴되는 걸 볼 수 있습니다.
간단하죠?
일단 간략한 소개는 여기까지~~
'programming > MSSQL' 카테고리의 다른 글
Essential SQL Server 2005 For Developers #2 (0) | 2004.12.20 |
---|---|
Checkpoint가 실제 얼마나 자주 실행되는지를 보는 방법 (2) | 2004.10.09 |
DTC 오류 해결 방법 (0) | 2004.08.31 |