데이터베이스 개체와 서버 개체 만들기 및 수정

데이터베이스 개체는 데이터베이스 내용의 구조를 정의합니다. 이러한 개체는 데이터 생성 계획과 스크립트도 포함할 수 있는 데이터베이스 프로젝트 내에 있습니다. 서버 개체는 로그인, 인증서 또는 사용자 지정 오류 메시지와 같이 데이터베이스 서버에 있지만 데이터베이스에는 없는 개체를 정의합니다. 서버 개체는 서버 프로젝트 내에 있습니다.

솔루션 탐색기에서 데이터베이스 및 서버 개체에 대한 정의는 파일에 포함되어 있으며 데이터베이스 또는 프로젝트 내의 형식별로 그룹화되어 있습니다. 데이터베이스 및 서버 개체에 대한 작업을 수행할 때는 개체가 형식별로 그룹화되는 스키마 뷰를 사용하는 것이 보다 편리할 수 있습니다. 데이터베이스 프로젝트의 파일은 파일의 Build Type빌드로 표시된 경우 데이터베이스 개체 정의에 대해 구문 분석됩니다. 데이터베이스 프로젝트에 포함되어 있지만 Build Type이 다른 파일은 데이터베이스 개체를 포함하는 것처럼 처리되지 않으며 스키마 뷰에 표시되지 않습니다.

일반 작업

다음 표에서는 이 시나리오를 지원하는 일반적인 작업에 대한 설명과 해당 작업을 성공적으로 완료하는 방법에 대한 자세한 내용을 볼 수 있는 링크를 보여 줍니다.

Task

지원 내용

실습: 기초 연습 과정을 따라 데이터베이스 프로젝트 및 해당 개체를 만드는 방법과 데이터베이스 개체를 수정하는 방법을 익힐 수 있습니다.

데이터베이스 및 서버 개체에 대한 자세한 내용: 이 항목의 뒷부분에서는 데이터베이스 및 서버 개체와 관련하여 이름을 확인하는 방법, 개체 정의에서 데이터베이스 이름을 참조하는 방법 및 개체의 유효성을 검사하는 방법 등을 자세히 알아볼 수 있습니다.

  • 개체 정의

  • 솔루션 탐색기 및 스키마 뷰의 개체

  • 개체 이름 확인

  • 개체 정의에서 데이터베이스 이름 참조

  • 개체 수준의 SET 옵션

  • 개체 유효성 검사

데이터베이스 개체 간의 종속성 이해: 데이터베이스 개체가 종속된 개체와 해당 개체에 종속된 개체를 볼 수 있습니다.

데이터베이스 또는 서버 프로젝트에 개체 추가: 다음과 같은 몇 가지 방법으로 데이터베이스 또는 서버 프로젝트에 개체를 추가할 수 있습니다.

  • 스크립트나 업데이트된 데이터베이스 또는 서버에서 개체를 가져올 수 있습니다.

  • 기본 스키마 또는 특정 스키마에 개체를 만들 수 있습니다.

  • 개체 정의가 포함된 파일을 프로젝트에 추가할 수 있습니다.

  • 프로젝트에 개체를 추가한 후 SET 옵션이라는 개체 수준 옵션을 사용자 지정할 수 있습니다.

  • 데이터베이스 개체의 사용 권한을 지정할 수 있습니다.

데이터베이스 또는 서버 프로젝트에 특수화된 개체 추가: 프로젝트에 특수화된 개체 형식을 추가하려면 해당 개체 형식에 따라 약간씩 다른 절차를 따라야 합니다.

  • 테이블 및 인덱스 옵션을 정의할 수 있습니다.

  • 역할에 사용자를 추가할 수 있습니다.

  • 전체 텍스트 카탈로그를 정의할 수 있습니다.

  • 파일 그룹 및 파일을 정의할 수 있습니다.

데이터베이스 또는 서버 개체 수정: 서버 또는 데이터베이스 프로젝트의 개체 정의를 수정할 수 있습니다. 해당 개체에 대한 개체 수준 SET 옵션을 수정할 수도 있습니다.

데이터베이스 또는 서버 프로젝트에서 개체 제거: 데이터베이스 또는 서버 프로젝트에서 개체를 삭제하여 영구적으로 제거할 수 있습니다. 아직 개발 중인 개체를 일시적으로 제외할 수도 있습니다.

데이터베이스 및 서버 개체용 템플릿 사용자 지정: 데이터베이스 및 서버 개체를 만들 때 사용하는 템플릿을 보고 수정할 수 있습니다.

문제 해결: 데이터베이스 및 서버 프로젝트와 관련된 일반적인 문제를 해결하는 방법에 대해 알아보십시오.

개체 정의

데이터베이스 및 서버 개체는 프로젝트 폴더에 저장되는 .sql 파일 컬렉션에 정의됩니다. 대부분의 개체는 개별 파일에 정의됩니다. 단, 테이블의 열과 저장 프로시저 또는 함수에 대한 매개 변수는 제외됩니다. 열은 테이블 정의가 포함된 파일에서 지정되고, 매개 변수는 저장 프로시저 또는 함수가 포함된 파일에서 지정됩니다.

.sql 파일의 빌드 작업 속성은 파일에 데이터베이스 개체 정의가 들어 있는지 확인하기 위해 파일을 구문 분석할지 여부를 나타냅니다. 기본적으로 데이터베이스 개체 정의가 들어 있는 파일은 빌드로 설정되고 다른 .sql 스크립트와 기타 파일은 빌드에 없음으로 설정됩니다. 빌드 작업 속성은 빌드 스크립트에 파일을 포함할지 여부도 결정합니다.

각 개체의 이름에 따라 해당 파일 이름이 결정되고 개체 형식에 따라 해당 기본 파일 확장명이 결정됩니다. 예를 들어 함수는 ObjectName.function.sql 파일에 들어 있고 저장 프로시저는 ObjectName.proc.sql 파일에 들어 있습니다.

솔루션 탐색기 및 스키마 뷰의 개체

솔루션 탐색기에서는 프로젝트에 포함된 파일과 개체에 대한 정의가 포함된 파일에 대한 작업을 수행할 수 있습니다. 솔루션 탐색기에서는 이름 바꾸기 리팩터링을 사용할 수 없습니다. 프로젝트를 버전 제어에 체크 인하려는 경우와 같이 파일에 대한 작업을 수행하려는 경우에는 솔루션 탐색기를 사용합니다.

스키마 뷰에서는 데이터베이스 개체에 대한 작업을 수행할 수 있습니다. 개체 정의가 들어 있는 파일이 아니라 개체에 대한 작업을 수행하려는 경우에는 스키마 뷰를 사용합니다. 예를 들어 스키마 뷰를 사용하여 데이터베이스 개체를 만들 수 있습니다.

개체 이름 확인

일반적으로 개체 이름은 SQL Server에서 사용하는 것과 동일한 규칙으로 확인됩니다. 일부 시스템 개체의 이름은 정규화되어야 올바르게 확인됩니다. 개체 이름이 정규화되지 않은 경우에 오류나 예기치 않은 동작이 발생하면 개체 이름을 정규화하여 문제를 해결해 보십시오.

개체 정의에서 데이터베이스 이름 참조

데이터베이스 프로젝트의 개체 정의 스크립트에서 $(databasename) 토큰을 사용할 수 있지만 이때 다음과 같은 제한 사항이 적용됩니다.

  • 다음 예제와 같이 토큰을 대괄호로 묶어야 합니다.

    [$(databasename)]

  • 다음 예제와 같이 토큰을 사용하여 세 부분으로 구성된 이름을 지정할 수는 없습니다.

    [$(databasename)].[dbo].[Table1]

다음 예제에서는 저장 프로시저에서 $(databasename) 토큰을 사용하는 방법을 보여 줍니다.

CREATE PROCEDURE [dbo].[MyProcedure]
@param1 INT = 0,
@param2 INT
AS
ALTER DATABASE [$(databasename)]
MODIFY FILEGROUP [FileGroup1] DEFAULT
RETURN 0

개체 수준의 SET 옵션

데이터베이스 프로젝트에 대해 설정할 수 있는 SET 옵션 외에 개별 데이터베이스 개체에 대한 옵션인 ANSI null 및 따옴표 붙은 식별자의 값도 지정할 수 있습니다. 기본적으로 각 개체에 대한 SET 옵션은 데이터베이스 프로젝트의 SET 옵션과 일치합니다. 이 두 개의 옵션을 프로젝트 기본값, 설정 또는 해제로 설정할 수 있습니다. 데이터베이스 프로젝트를 빌드하면 프로젝트 기본값 이외의 값으로 설정된 개체 수준의 SET 옵션만 빌드 스크립트에 스크립팅됩니다.

참고

스크립트 가져오기 또는 데이터베이스 스키마 가져오기 명령을 사용하는 경우 개별 데이터베이스 개체에 대한 SET옵션 값은 가져오지 않습니다. 속성 창에서 해당 옵션 값을 설정해야 합니다. 자세한 내용은 방법: 개체 수준의 SET 옵션 지정을 참조하십시오.

개체 유효성 검사

만들거나 수정한 데이터베이스 개체에 변경 내용을 저장하면 유효성 검사가 수행됩니다. 개체 정의의 모든 오류가 오류 목록 창에 표시됩니다. 오류 메시지를 두 번 클릭하는 경우 오류를 수정할 수 있도록 개체 정의가 열립니다. 오류가 있는 데이터베이스 개체는 스키마 뷰의 해당 아이콘에 빨간색 느낌표가 표시됩니다.

참고

사용 중인 릴리스에서 지원되지 않는 데이터베이스 개체는 아이콘에 노란색 역삼각형이 표시됩니다.

데이터베이스 개체의 문제를 해결하는 방법에 대한 자세한 내용은 데이터베이스 프로젝트, 빌드 및 배포 문제 해결을 참조하십시오.

관련 시나리오

참고 항목

개념

데이터베이스를 빌드하여 스테이징 환경 또는 프로덕션 환경에 배포

데이터베이스를 빌드하여 격리된 개발 환경에 배포

데이터베이스 개체에 대한 모든 참조 이름 바꾸기

데이터베이스 코드 작성 및 변경