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

일반적으로 데이터베이스 개체를 정의할 때 Transact-SQL 프로그래밍 언어를 사용합니다. 그러나 .NET Framework 언어를 사용하여 저장 프로시저 및 트리거와 같은 데이터베이스 개체를 정의하고 SQL Server 데이터베이스에 대한 데이터를 검색하고 업데이트할 수 있습니다. 이러한 개체를 흔히 SQL CLR(공용 언어 런타임) 개체라고 합니다.

데이터베이스 개체를 만들려면 SQL Server 프로젝트를 만들고 필요한 항목을 프로젝트에 추가한 후 해당 항목에 코드를 추가합니다. 그런 다음 프로젝트를 어셈블리에 빌드하고 SQL Server에 배포합니다.

참고

CLR 통합 기능은 SQL Server에서 기본적으로 해제되어 있습니다. SQL CLR 프로젝트 항목을 사용하려면 CLR 통합을 사용하도록 설정해야 합니다. 이렇게 하려면 sp_configure 저장 프로시저의 clr enabled 옵션을 사용합니다. 자세한 내용은 Microsoft 웹 사이트의 clr enabled Option 항목을 참조하십시오.

빌드, 배포 및 디버깅

프로젝트를 빌드하면 프로젝트에서 참조된 데이터베이스에 배포할 수 있는 어셈블리로 컴파일된 후 디버깅됩니다.

참고

빌드, 배포 및 디버깅을 개별적으로 수행하는 대신 시작 명령(F5 키)이나 디버깅하지 않고 시작 명령(Ctrl+F5)을 사용하여 어셈블리를 빌드하고 데이터베이스에 배포하고 데이터베이스 개체를 디버깅할 수 있습니다. F5 또는 Ctrl+F5를 사용하려면 SQL CLR 데이터베이스 프로젝트를 시작 프로젝트로 설정해야 합니다. 자세한 내용은 방법: 시작 프로젝트 설정을 참조하십시오.

필요에 따라 Transact-SQL 문을 PreDeployScript.sql 및 PostDeployScript.sql에 추가할 수 있습니다. SQL CLR 데이터베이스 프로젝트를 배포하기 전이나 후에 데이터베이스에 대한 작업을 수행해야 하는 경우가 여기에 해당합니다.

데이터베이스 개체를 디버깅하기 전에 Transact-SQL 코드를 Test.sql 스크립트에 추가해야 합니다. 또는 프로젝트를 배포한 데이터베이스에 연결된 Transact-SQL 편집기의 인스턴스에 동일한 Transact-SQL 코드를 추가할 수도 있습니다. 이 스크립트는 데이터베이스 개체를 시작하고 테스트하는 데 필요한 데이터베이스 내 작업을 수행하므로 디버깅하는 데 중요합니다. SQL CLR 데이터베이스 프로젝트에 두 개 이상의 데이터베이스 개체가 포함된 경우 디버깅할 각 데이터베이스 개체를 실행할 수 있도록 이 스크립트에 Transact-SQL 코드를 포함해야 합니다.

이 디버그 스크립트 요구 사항은 Windows Forms 프로젝트와 같이 독립적으로 실행할 수 있는 프로그램을 만들고 실행하는 프로젝트와는 다릅니다. 데이터베이스 개체가 데이터베이스 내 작업 또는 호출에 대한 응답으로 실행되기 때문입니다. 예를 들어, 새 행이 테이블에 삽입될 때 트리거가 활성화될 수 있습니다. 따라서 스크립트가 새 행을 테이블에 삽입하여 트리거를 활성화해야 합니다. Visual Studio의 출력 창에 트리거의 결과가 표시되므로 트리거가 제대로 작동하는지 여부를 확인할 수 있습니다.

중요

SQL CLR 어셈블리를 배포하거나 디버깅하려면 적절한 사용 권한이 있어야 합니다. 자세한 내용은 Visual Studio의 데이터베이스 기능에 필요한 권한을 참조하십시오.

각 데이터베이스 개체 형식에 대한 샘플 코드는 해당 형식에 대한 항목에서 찾아볼 수 있습니다.

데이터베이스 개체 디버깅

데이터베이스 개체를 디버깅하면 어셈블리가 빌드되고 데이터베이스에 배포된 후 디버깅됩니다. 이전에 빌드하고 배포한 데이터베이스 개체를 디버깅하면 이전에 빌드한 이후에 프로젝트가 변경된 경우에만 어셈블리가 다시 빌드됩니다. 어셈블리는 항상 데이터베이스에서 삭제되고 다시 복사됩니다. 자세한 내용은 관리 코드를 사용하는 데이터베이스 개체 디버깅(SQL CLR 디버깅)을 참조하십시오.

원격 디버깅을 사용하려면

  1. 솔루션 탐색기에서 원격 디버깅을 사용할 SQL CLR 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

  2. 배포 탭을 클릭합니다.

  3. 코드 배포를 선택합니다.

  4. 파일 메뉴에서 선택한 항목 저장을 클릭합니다.

데이터베이스 개체를 디버깅하려면

  1. 솔루션 탐색기에서 해당 솔루션을 클릭합니다.

  2. 디버그 메뉴에서 시작을 클릭합니다.

  3. 출력 창의 다음에서 출력 보기 목록에서 데이터베이스 출력을 선택하여 결과를 봅니다.

일반 작업

일반 작업

지원 내용

SQL CLR 데이터베이스 프로젝트에 대 한 자세한 내용은: 개발의 장점에 [NULL]에 대해 읽어보십시오.NET Framework 데이터베이스 개체 SQL Server 관리 코드를 사용 하 여. 관리 되는 코드에 비해 몇 가지 장점이 Transact-SQL.

손-연습을 얻을: 만들기, 배포 및 관리 코드를 사용 하 여 저장된 프로시저를 정의 하는 프로젝트를 테스트 하는 방법에 익숙해지도록 연습을 따릅니다.

SQL CLR 데이터베이스 프로젝트를 만듭니다. 프로젝트를 만들려면 Visual Basic 또는 Visual C# 를 정의 하려면 원하는 데이터베이스 개체에 대 한 정의가 포함 됩니다.

SQL CLR 데이터베이스 프로젝트에 항목을 추가: 처음 만들 때 한 SQL Server 프로젝트 참조 및 어셈블리 정보를 포함 합니다. 데이터베이스 개체를 만들려면 항목을 프로젝트에 추가한 후 항목에 코드를 추가해야 합니다. 저장 프로시저, 집계, 트리거, 사용자 정의 함수 및 사용자 정의 형식을 추가할 수 있습니다. 특성을 각 SQL Server 프로젝트와 해당 프로젝트에 들어 있는 각 개체에 적용해야 합니다.

한 프로젝트 안에 여러 개체를 정의할 수 있습니다. 개체를 따로 업데이트해야 하는 경우나 결과 어셈블리를 배포할 모든 데이터베이스에 일부 개체만 사용되는 경우 여러 프로젝트를 사용할 수도 있습니다.

SQL 서버에 어셈블리를 배포 하 고 테스트: 결과 어셈블리를 배포 해야 합니다 프로젝트 만들기, 항목, 추가 그 항목에 코드를 추가 후는 SQL Server 정의 된 개체를 사용할 수 있습니다. 한 SQL Server 프로젝트에 다른 SQL Server 프로젝트에 포함된 하나 이상의 개체에 대한 참조가 있으면 첫 번째 프로젝트에서 배포 명령을 사용하여 두 번째(참조된) 프로젝트를 배포할 수 없습니다. 어셈블리를 배포한 후에는 테스트 스크립트를 실행하여 간단한 테스트를 수행할 수 있습니다.

디버그 배포입니다.NET Framework 데이터베이스 개체: 데이터베이스 개체는 의도 한 대로 작동 하지 않으면, 식별 하 고 수정 된 개체를 디버깅할 수 있습니다 코드 결함.

참고 항목

  • System.Data
    System.Data 네임스페이스를 설명하고 관련 클래스의 테이블을 제공합니다.

  • System.Data.Sql
    System.Data.Sql 네임스페이스를 설명하고 관련 클래스의 테이블을 제공합니다.

  • System.Data.SqlTypes
    System.Data.SqlTypes 네임스페이스는 SQL Server 2005 내의 네이티브 데이터 형식에 대한 클래스를 제공합니다.

  • Microsoft.SqlServer.Server
    Microsoft.SqlServer.Server 네임스페이스를 설명하고 관련 클래스의 테이블을 제공합니다.

관련 시나리오

  • 참조 하는 팀 환경에서 데이터베이스를 개발.NET Framework 데이터베이스 개체: 추가 기능을 사용할 수 있습니다 Visual Studio 위험을 줄이고 팀 환경에서 데이터베이스 응용 프로그램 개발을 가속화 하는 데 도움이. 데이터베이스 프로젝트에 데이터베이스 스키마를 정의하고, 버전 제어에서 프로젝트를 관리하고, 데이터베이스 단위 테스트를 만들어서 예상 동작을 확인할 수 있습니다.