김종열
MS SQL Server MVP
엔트리브 소프트
MSSQL을 사용하며 FUNCTION이나 PROCEDURE으로 여러기능을 구현하며
“이런 기능이 있었으면 좋겠는데…“
라는 생각을 한번쯤 해보신 적이있나요?
물론 그 이상의 기능을 가지고 있음에도 불구하고
부족함이 많기에 이 부분을 공부하신 분들이 같이 채워주시리라 믿습니다.
또한 실무에 적용시 에러에 대한 것은 책임지지 않음을..
▶ 개발환경
OS : WINDOWS VISTA ULTIMATE (SP2)
DATABASE : MSSQL2005 DEVELOPER
TOOL : VISUAL STUDIO 2005
FRAMEWORK : 2.0이상
LANGUAGE : C#
MSSQL2005에 TEST용 DATABAS 하나를 만들고 가겠습니다.
한번 설정된 기능은 바꾸지 않는한 특별히 변경되지는 않습니다.
CREATE DATABASE YOULYDB
GO
ALTER DATABASE youlyDB SET TRUSTWORTHY ON
GO
USE YOULYDB
GO
--CLR을 사용할 수 있도록 DATABASE CONFIGURE 변경
SP_CONFIGURE 'CLR ENABLED', 1
RECONFIGURE WITH OVERRIDE
GO
--CLR을 사용할 수 있는 지 확인
SP_CONFIGURE
GO
/**********************************************************************************
name minimum maximum config_value run_value
----------------------------------- ----------- ----------- ------------ -----------
clr enabled 0 1 1 1
**********************************************************************************/
주의)
SP_CONFIGURE 'CLR ENABLED', 0
RECONFIGURE WITH OVERRIDE
GO
위의 명령으로 DATABASE CONFIGURE를 바꾸시면 LOAD 되어있는 CLR의 모듈들이 전부 UNLOAD 됩니다.
▶ DATABASE의 옵션 변경하기
CLR은 사용자정의함수, 프로시져등이 외부에서 만든개체에 접근하여 사용하기 때문에
DATABASE의 옵션은 외부개체의 접근을 허용해주어야합니다.
ALTER DATABASE YOULYDB SET TRUSTWORTHY ON
GO
--설정 확인 하기
SELECT NAME, IS_TRUSTWORTHY_ON FROM SYS.DATABASES WHERE NAME = 'YOULYDB'
여기까지가 DATABASE설정부분입니다.
USP_HELLO를 한번 만들어 볼까요? 아래의 과정에 대한 설명은 차후에 설명하도록 하겠습니다.
이번 강좌는 맛보기의 HELLO이므로 큰 의미는 두지 않으시길 ^^
1. C# DATABASE PROJECT 생성
2. 사용자저장프로시져 생성
3. COMPILE
4. DATABASE에서 실행하기
1. C# DATABASE PROJECT 생성 하는 과정입니다.
2. C# Project Save
3. SELECT DATABASE(적절한 데이터베이스를 선택하십시오. 생성되어지는 object가 들어갈 DB입니다.)
4. solution explore에서 사용자 저장 프로시져를 추가해주십시오.
7. build/배포를 하십시오. (menu > build > build prj_clr)
8. Run
EXEC USP_HELLO_CLR
go
clr_text
--------
Hello
(1 row(s) affected)
▶ 메타데이터 확인하기
SELECT A.* FROM SYS.ASSEMBLY_FILES A
INNER JOIN SYS.ASSEMBLIES B
ON A.ASSEMBLY_ID = B.ASSEMBLY_ID
WHERE B.NAME = 'PRJ_CLR'
GO
SELECT * FROM SYS.ASSEMBLY_MODULES A
INNER JOIN SYS.ASSEMBLIES B
ON A.ASSEMBLY_ID = B.ASSEMBLY_ID
WHERE B.NAME = 'PRJ_CLR'
GO
SELECT * FROM SYS.ASSEMBLY_REFERENCES
GO
SELECT * FROM SYS.MODULE_ASSEMBLY_USAGES
GO
'연구개발 > CLR' 카테고리의 다른 글
CLR 강좌 - TEXT파일 읽기 (0) | 2009.06.22 |
---|---|
CLR 강좌_ 함수 인자 주고 받기 (0) | 2009.06.22 |
CLR 권한 처리 문제 (0) | 2009.06.22 |
CLR 강좌 - CLR_수동배포 (0) | 2009.06.22 |
SQL 2005 따라하기 6 (CLR) (0) | 2009.06.22 |