MSSQL 에서 사용 할 외부 라이브러리 clr dll 만들기.
준비 : VS2019 , MSSQL 2014
1. 프로젝트 생성. SQL Server 데이터베이스 프로젝트를 선택 후 다음 클릭.
2. 프로젝트 구성. 프로젝트 이름을 임의 설정 'sqlclr' 하고 만들기 클릭.
3. sqlclr 프로젝트 확인 후 우클릭하여 새항목을 추가.
4. 새 항목 중 SQL CLR C# 선택 후 SQL CLR C# 사용자 정의 함수로 추가. 아래 소스 파일 이름 변경이 가능
5. 자동으로 소스 내용이 생성되며 간단한 함수 1개가 생성된다.
6. 테스트를 위한 hello world를 리턴하는 함수와 입력값을 그대로 리턴하는 함수 생성.
class 명 : UserDefinedFunctions
함수명 : SqlFunction1 , hello
7. 컴파일 구성 방식을 설정. Release 로 변경 MSSQL 64bit 에서 사용할 거라 x64 선택
Debug 사용시 타 서버에서는 동작 안됨.
8. 프로젝트에서 우클릭 해서 빌드 선택. 상단에 빌드 탭에서도 가능하다.
9. 빌드 완료 된 출력 화면
10. 빌드 된 clr dll 파일 확인
- MSSQL 적용 가이드
MSSQL clr 등록 및 Function 생성 스크립트.
sqlclr.dll 파일 위치는 권한 있는 폴더에 위치 시켜야 함.
use master
GO
sp_configure 'clr enabled', 1
RECONFIGURE WITH OVERRIDE
GO
alter database master
set TRUSTWORTHY ON
go
CREATE ASSEMBLY clrcube
FROM 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQL2019\MSSQL\Binn\sqlclr.dll'
WITH PERMISSION_SET = SAFE;
go
CREATE FUNCTION [dbo].[SqlFunction1]
(
@input [nvarchar](100)
)
RETURNS [nvarchar](100) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [sqlclr].[UserDefinedFunctions].[SqlFunction1]
go
CREATE FUNCTION [dbo].[hello]
(
)
RETURNS [nvarchar](100) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [sqlclr].[UserDefinedFunctions].[hello]
go
스크립트 수행 후 성공 화면
master에 등록 된 clr 화면과 함수 확인
테스트 성공 화면.
select dbo.SqlFunction1('abcd')
select dbo.hello()
SqlFunction1 함수에 abcd입력 시 abcd 결과
hello 함수 수행 시 hello world!! 결과.
clr 및 함수 삭제 방법
DROP FUNCTION [dbo].[SqlFunction1]
DROP FUNCTION [dbo].[hello]
DROP ASSEMBLY sqlclr
'DB > MSSQL' 카테고리의 다른 글
[MSSQL 오류] 컴파일 오류_미리 컴파일된 헤더 파일이 이전 버전의 컴파일러에서 만들어졌거나 미리 컴파일된 헤더가 c++인데 c에서 사용하고 있거나 또는 그 반대의 경우입니다. (0) | 2021.12.07 |
---|---|
MSSQL C 확장 저장 프로시저 (0) | 2021.12.06 |
MSSQL C# CLR 라이브러리 SQL 쿼리 (0) | 2021.12.02 |
MSSQL C# CLR 라이브러리 함수 타입 (0) | 2021.12.01 |
댓글