반응형

김종열

MS SQL Server MVP

엔트리브 소프트

 

 

MSSQL  사용하며  FUNCTION이나  PROCEDURE으로  여러기능을  구현하며

이런  기능이  있었으면  좋겠는데…“

라는  생각을  한번쯤  해보신  적이있나요?  

물론    이상의  기능을  가지고  있음에도  불구하고 저는  이런  작은  의문이나  구현의  욕심으로  CLR & SQL  공부하게  되었고    흔적들을 공유하고자  강좌를  시작하게  되었습니다.

 

부족함이  많기에    부분을  공부하신  분들이  같이  채워주시리라  믿습니다.

또한  실무에  적용시  에러에  대한  것은  책임지지  않음을..

 

 

개발환경

 

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에서 사용자 저장 프로시져를 추가해주십시오.

 

5. 추가하는 stored_procedure cs파일은 usp_hello_clr.cs 저장하십시오 

 

 

6. 코딩하고 컴파일 하는 과정입니다. (cs파일의 소스는 첨부하였습니다.)

  

 

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

+ Recent posts