방법: SQL Server 공용 언어 런타임 통합을 사용하는 데이터베이스 개체의 프로젝트 만들기

Visual Studio의 SQL Server 프로젝트에서 Visual Basic 및 Visual C# 등의 .NET Framework 언어를 사용하여 저장 프로시저, 트리거, 집계, 사용자 정의 함수 및 사용자 정의 형식을 만들 수 있습니다. SQL Server 프로젝트에는 SQL Server 2005 이후 버전의 SQL Server에 대한 참조가 필요합니다. 이러한 개체를 흔히 SQL CLR(공용 언어 런타임) 개체라고 합니다.

중요

SQL Server 2005 또는 SQL Server 2008의 SQL CLR 어셈블리를 개발하려면 개발 컴퓨터에 .NET Framework 버전 3.5가 설치되어 있어야 합니다. SQL Server 2005 및 SQL Server 2008에는 .NET Framework의 SQL CLR 어셈블리 대상 버전 2.0, 3.0 또는 3.5가 필요합니다. Microsoft 웹 사이트에서 Microsoft .NET Framework 3.5를 다운로드하여 설치할 수 있습니다.

SQL CLR 데이터베이스 프로젝트를 만든 후에는 SQL Server에 배포할 데이터베이스 개체를 만들 수 있습니다. 다음 표에서는 사용 가능한 데이터베이스 개체를 만드는 방법을 설명하는 도움말 항목에 대한 링크를 제공합니다.

데이터베이스 개체

정보

저장 프로시저

방법: 공용 언어 런타임 통합을 사용하여 SQL Server 저장 프로시저 만들기 및 실행

트리거

방법: 공용 언어 런타임 통합을 사용하여 SQL Server 트리거 만들기 및 실행

집계

방법: 공용 언어 런타임 통합을 사용하여 SQL Server 집계 만들기 및 실행

사용자 정의 함수

방법: 공용 언어 런타임 통합을 사용하여 SQL Server 사용자 정의 함수 만들기 및 실행

사용자 정의 형식

방법: 공용 언어 런타임 통합을 사용하여 SQL Server 사용자 정의 형식 만들기 및 실행

참고

표시되는 대화 상자와 메뉴 명령은 활성 설정이나 버전에 따라 도움말에서 설명하는 것과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 설정에 대한 작업을 참조하십시오.

새 프로젝트 만들기

새 SQL Server 프로젝트를 만들려면

  1. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

  2. 설치된 템플릿에서 데이터베이스 노드를 확장하고 SQL Server를 클릭합니다.

  3. 템플릿 목록에서 만들려는 프로젝트 형식에 해당하는 아이콘을 클릭합니다. 예를 들어, Visual C#을 사용하는 SQL CLR 프로젝트를 만들려면 Visual C# SQL CLR 데이터베이스 프로젝트를 클릭합니다.

  4. 템플릿 목록 위에 있는 대상 프레임워크 목록에서 SQL CLR 데이터베이스 프로젝트를 배포할 SQL Server의 버전에 해당하는 .NET Framework의 버전을 클릭합니다.

    중요

    SQL Server 2005 및 SQL Server 2008에서는 .NET Framework 2.0, 3.0 또는 3.5 버전으로 빌드된 SQL Server 프로젝트만 지원합니다. 배포 하려고 하는 경우는 SQL Server 프로젝트를 SQL Server 2005 또는 SQL Server 2008, 오류 메시지가 나타납니다: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(어디 AssemblyName 배포 하는 어셈블리의 이름입니다).

  5. 이름에서 프로젝트에 사용할 이름을 지정합니다.

  6. 확인을 클릭합니다.

SQL Server 프로젝트 구성

SQL Server 프로젝트를 만든 후 배포하기 전에 몇 가지 프로젝트 속성을 수정할 수도 있습니다.

SQL Server 프로젝트 속성을 구성하려면

  1. 솔루션 탐색기에서 속성을 구성할 프로젝트를 선택합니다.

  2. 프로젝트 메뉴에서 ProjectName 속성을 클릭합니다. 여기서 ProjectName은 SQL Server 프로젝트에 지정한 이름입니다.

  3. 응용 프로그램 탭의 어셈블리 이름에 SQL Server 프로젝트에서 빌드한 어셈블리에 지정할 이름을 지정합니다.

  4. SQL CLR 데이터베이스 프로젝트를 배포하려고 하는 SQL Server 버전에서 지원되는 .NET Framework의 버전을 이미 지정한 경우 10단계로 건너뛸 수 있습니다.

  5. Visual Basic을 사용하는 경우 7단계로 건너뜁니다.

  6. 응용 프로그램 탭의 대상 프레임워크에서 SQL CLR 데이터베이스 프로젝트를 배포하려고 하는 SQL Server 버전에 해당하는 .NET Framework의 버전을 클릭합니다.

    중요

    SQL Server 2005 및 SQL Server 2008에서는 .NET Framework 2.0, 3.0 또는 3.5 버전으로 빌드된 SQL Server 프로젝트만 지원합니다. 배포 하려고 하는 경우는 SQL Server 프로젝트를 SQL Server 2005 또는 SQL Server 2008, 오류 메시지가 나타납니다: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(어디 AssemblyName 배포 하는 어셈블리의 이름입니다).

  7. 10단계로 이동합니다. 7~9단계는 Visual Basic을 사용하는 경우에만 적용됩니다.

  8. 컴파일 탭에서 고급 컴파일 옵션을 클릭합니다.

  9. 고급 컴파일 설정 대화 상자의 대상 프레임워크에서 SQL CLR 데이터베이스 프로젝트를 배포하려고 하는 SQL Server 버전에 해당하는 .NET Framework의 버전을 클릭합니다.

    중요

    SQL Server 2005 및 SQL Server 2008에서는 .NET Framework 2.0, 3.0 또는 3.5 버전으로 빌드된 SQL Server 프로젝트만 지원합니다. 배포 하려고 하는 경우는 SQL Server 프로젝트를 SQL Server 2005 또는 SQL Server 2008, 오류 메시지가 나타납니다: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(어디 AssemblyName 배포 하는 어셈블리의 이름입니다).

  10. 확인을 클릭합니다.

  11. 데이터베이스 탭의 어셈블리 소유자에 사용자 또는 역할의 이름을 어셈블리의 소유자로 입력합니다.

    중요

    이 값은 현재 사용자가 멤버로 속해 있는 역할의 이름이어야 합니다. 또는 현재 사용자가 IMPERSONATE 권한을 가져야 합니다. 어셈블리 소유자를 지정하지 않으면 현재 사용자에게 소유권이 제공됩니다. 이 설정은 SQL Server CREATE ASSEMBLY 문의 AUTHORIZATION owner_name 인수에 해당합니다. 자세한 내용은 Microsoft 웹 사이트의 CREATE ASSEMBLY (Transact-SQL)를 참조하십시오.

  12. 파일 메뉴에서 모두 저장을 클릭합니다.

    XML Serialization을 사용하는 SQL CLR 개체를 만들려면 "XML Serialization을 사용하는 SQL CLR 개체 만들기"에 설명된 다음의 추가 단계를 수행합니다.

XML Serialization을 사용하는 SQL CLR 개체 만들기

웹 서비스를 만들려면 빌드 속성에서 Serialization 어셈블리 생성 옵션을 'On'으로 설정합니다. 그러나 SQL CLR 개체를 포함하는 어셈블리를 배포할 경우 대상 서버에 XML Serialization 어셈블리가 만들어지지 않습니다. 해당 어셈블리를 만들려면 PostDeployScript.sql 스크립트에 문을 추가해야 합니다.

참고

웹 서비스를 만들려면 권한 집합을 External_Access 또는 "안전하지 않음"으로 설정하고 대상 데이터베이스에서 Trustworthy 설정을 On으로 설정해야 합니다.

SQL CLR 어셈블리에 대해 XMLSerializer 어셈블리를 만들려면

  1. 솔루션 탐색기에서 배포할 SQL CLR 프로젝트를 확장하고 PostDeployScript.sql 스크립트를 두 번 클릭합니다.

  2. 코드 편집기에서 다음 Transact-SQL 문을 스크립트에 추가합니다.

    CREATE ASSEMBLY SqlClassLibraryXML from 'path\assemblyname.XmlSerializers.dll' 
    

    여기서 SqlClassLibraryXML은 어셈블리에 지정할 이름이며, path는 직렬 변환기 어셈블리의 경로이고, assemblyname.XmlSerializers.dll은 직렬 변환기 어셈블리의 이름입니다.

  3. 파일 메뉴에서 PostDeployScript.dll 저장을 클릭합니다.

SQL Server 데이터베이스에 연결

SQL CLR 데이터베이스 프로젝트에는 SQL Server 2005 이상에서 실행되는 데이터베이스에 대한 연결이 필요합니다. 서버 탐색기에서 SQL Server 2005 데이터베이스에 대한 연결을 사용할 수 있으면 데이터베이스 참조 추가 대화 상자에 해당 데이터베이스가 표시됩니다. 데이터베이스 프로젝트(.dbproj)를 사용하여 SQL Server 프로젝트에서 빌드하는 어셈블리를 배포하려는 경우 데이터베이스 연결을 지정할 필요가 없으며 연결 대화 상자에서 취소를 클릭할 수 있습니다. 자세한 내용은 SQLCLR 개체를 참조하는 데이터베이스의 팀 개발 시작을 참조하십시오.

SQL Server 데이터베이스에 연결하려면

  • 연결 추가/수정 대화 상자를 완료하여 SQL Server 2005 또는 SQL Server 2008 데이터베이스에 연결합니다. 자세한 내용은 연결 추가/수정(Microsoft SQL Server)을 참조하십시오.

    또는

    데이터베이스 참조 추가 대화 상자에서 SQL Server 프로젝트에 사용할 기존 데이터베이스 연결을 선택합니다. 자세한 내용은 데이터베이스 참조 추가 대화 상자을 참조하십시오.

참고 항목

작업

연습: 관리 코드로 저장 프로시저 만들기

방법: SQL CLR 저장 프로시저 디버깅

참조

SQL CLR 데이터베이스 프로젝트 및 데이터베이스 개체의 특성

개념

SQL Server CLR 통합 소개(ADO.NET)

관리 코드를 사용하여 데이터베이스 개체를 만드는 경우의 이점

관리 코드로 SQL Server 개체 만들기