다음을 통해 공유


SQL Server 프로젝트

업데이트: 2007년 11월

Transact-SQL 프로그래밍 언어 이외에 .NET Framewor 언어를 사용하여 저장 프로시저나 트리거와 같은 데이터베이스 개체를 만들고 Microsoft SQL Server 2005 데이터베이스에 대해 데이터를 검색하고 업데이트할 수 있습니다. 관리 코드를 사용하여 SQL Server를 위한 .NET Framework 데이터베이스 개체를 개발하면 Transact-SQL을 사용할 때보다 장점이 많습니다. 자세한 내용은 관리 코드를 사용하여 데이터베이스 개체를 만드는 경우의 이점을 참조하십시오.

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

참고:

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

새 프로젝트 만들기

파일 메뉴를 클릭하고 프로젝트를 선택한 다음 새 프로젝트 대화 상자에서 SQL Server 프로젝트를 선택하여 새 SQL Server 프로젝트를 만듭니다. 자세한 내용은 방법: SQL Server 프로젝트 만들기를 참조하십시오.

새 SQL Server 프로젝트를 만들고 나면 데이터베이스 참조 추가 대화 상자가 표시됩니다. 이 대화 상자를 사용하면 프로젝트에 데이터베이스 참조나 연결을 추가할 수 있습니다. 현재 서버 탐색기/데이터베이스 탐색기에서 사용할 수 있는 데이터베이스 참조를 선택하거나 새 연결을 정의할 수 있습니다. 프로젝트에는 데이터베이스 참조를 하나만 추가할 수 있습니다.

프로젝트 속성

어셈블리 매니페스트가 포함된 출력 파일의 이름인 어셈블리 이름을 변경할 수 있습니다. 어셈블리 이름을 변경하면 SQL Server 데이터베이스의 데이터베이스 개체 이름도 변경됩니다.

프로젝트에 항목 추가

새 SQL Server 프로젝트에는 참조 및 어셈블리 정보만 들어 있습니다. 데이터베이스 개체를 만들려면 우선 항목을 프로젝트에 추가한 후 항목에 코드를 추가해야 합니다. 자세한 내용은 SQL Server 프로젝트에 대한 항목 템플릿을 참조하십시오.

다음 표에서는 추가할 수 있는 SQL Server 프로젝트 관련 항목을 보여 줍니다.

항목

추가 정보

저장 프로시저

방법: CLR SQL Server 저장 프로시저 만들기 및 실행

트리거

방법: CLR SQL Server 트리거 만들기 및 실행

사용자 정의 함수

방법: CLR SQL Server 사용자 정의 함수 만들기 및 실행

사용자 정의 형식

방법: CLR SQL Server 사용자 정의 함수 만들기 및 실행

집계

방법: CLR SQL Server 집계 만들기 및 실행

빌드, 배포 및 디버깅

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

팁:

빌드, 배포 및 디버깅을 개별적으로 수행하는 대신 시작 명령(F5 키)이나 디버깅하지 않고 시작 명령(Ctrl+F5)을 사용하여 어셈블리를 빌드하고 데이터베이스에 배포하고 데이터베이스 개체를 디버깅할 수 있습니다.

데이터베이스 개체를 디버깅하려면 우선 Transact-SQL 코드를 Test.sql(Visual C++의 경우 debug.sql) 항목에 추가해야 합니다. 디버깅하려면 데이터베이스 개체를 시작하고 테스트하는 데 필요한 데이터베이스 내 작업을 수행하는 스크립트가 Test.sql 항목에 있어야 합니다. 프로젝트에 추가될 때 Test.sql 항목에는 데이터베이스에서 필요한 작업을 수행하는 스크립트에 대한 코드 개요가 포함됩니다. SQL Server 프로젝트에 둘 이상의 데이터베이스 개체가 포함된 경우에는 각 데이터베이스 개체에 대해 Test.sql 항목 스크립트를 실행해야 합니다.

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

그 다음에는 Test.sql 항목과 SQL Server 프로젝트에 추가한 항목에 코드를 추가합니다. 사용할 수 있는 데이터베이스 항목을 설명하는 항목에서 각 데이터베이스 개체에 대한 샘플 코드를 찾을 수 있습니다. 이전 표를 참조하십시오.

SQL Server 프로젝트 빌드

프로젝트를 빌드하면 어셈블리로 컴파일됩니다. Visual Basic을 사용하는 경우 다음 단계를 수행하십시오.

Visual Basic SQL Server 프로젝트를 빌드하려면

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

  2. 빌드 메뉴에서 <ProjectName>빌드를 클릭합니다.

Visual C#, Visual C++ 또는 Visual J#을 사용하는 경우 다음 단계를 수행하십시오.

Visual C#, Visual C++ 또는 Visual J# SQL Server 프로젝트를 빌드하려면

  1. 솔루션 탐색기에서 솔루션을 선택합니다.

  2. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

데이터베이스에 어셈블리 배포

프로젝트에서 참조되는 데이터베이스에 어셈블리를 배포하면 데이터베이스에 대한 연결이 만들어지고 어셈블리가 데이터베이스로 복사됩니다. 여기에서 어셈블리가 등록되고 특성이 설정됩니다. 어셈블리는 서버의 특정 데이터베이스에 배포되므로 같은 서버의 다른 데이터베이스에 대한 새 데이터베이스 참조를 만들 경우 어셈블리를 사용하려면 먼저 참조 대상이 되는 데이터베이스에 어셈블리를 배포해야 합니다.

Visual Basic을 사용하는 경우 다음 단계를 수행하십시오.

Visual Basic SQL Server 클래스 라이브러리 어셈블리를 배포하려면

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

  2. 빌드 메뉴에서 <ProjectName>배포를 클릭합니다.

Visual C#, Visual C++ 또는 Visual J#을 사용하는 경우 다음 단계를 수행하십시오.

Visual C#, Visual C++ 또는 Visual J# SQL Server 클래스 라이브러리 어셈블리를 배포하려면

  1. 솔루션 탐색기에서 솔루션을 선택합니다.

  2. 빌드 메뉴에서 솔루션 배포를 클릭합니다.

데이터베이스 개체 디버깅

데이터베이스 개체를 디버깅하면 어셈블리가 빌드되고 데이터베이스에 배포된 후 디버깅됩니다. 이전에 빌드하고 배포한 데이터베이스 개체를 디버깅하면 이전에 빌드한 이후에 프로젝트가 변경된 경우에만 어셈블리가 다시 빌드됩니다. 어셈블리는 항상 데이터베이스에서 삭제되고 다시 복사됩니다.

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

  1. 솔루션 탐색기에서 솔루션을 선택합니다.

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

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

참고 항목

작업

방법: SQL Server 프로젝트 만들기

방법: CLR SQL Server 저장 프로시저 만들기 및 실행

방법: CLR SQL Server 트리거 만들기 및 실행

방법: CLR SQL Server 집계 만들기 및 실행

방법: CLR SQL Server 사용자 정의 함수 만들기 및 실행

방법: CLR SQL Server 사용자 정의 형식 만들기 및 실행

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

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

개념

SQL Server CLR 통합 소개

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

SQL Server 프로젝트에 대한 항목 템플릿

참조

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

기타 리소스

SQL CLR 데이터베이스 디버깅