다음을 통해 공유


SQL Server Management Studio에서 GitHub Copilot와 함께 데이터베이스 지침 사용(미리 보기)

GitHub Copilot는 SQL Server Management Studio(SSMS)에서 데이터베이스 지침을 제공하여, 데이터베이스 내부의 특정 컨텍스트와 지침을 직접 활용합니다. 데이터베이스 소유자와 팀은 이를 사용하여 비즈니스 규칙, 데이터 규칙 및 사용 패턴을 설명할 수 있습니다. 데이터베이스 지침을 통해 Copilot는 사용자가 질문을 하거나 쿼리를 작성할 때 보다 정확하고 의미 있고 일관된 응답을 생성할 수 있습니다. 데이터베이스 지침은 데이터베이스와 함께 이동하고 코필로트 상호 작용 중에 자동으로 적용되는 살아있는 설명서 역할을 합니다.

이 문서에서는 사용자와 Copilot가 올바른 개체 및 정보를 더 빠르게 찾을 수 있도록 하는 데이터베이스 지침을 사용하는 방법을 알아봅니다. 이 기능은 코필로트에 데이터베이스, 비즈니스 및 내부 지식을 제공하는 데 소요되는 시간을 줄이는 데 도움이 됩니다.

GitHub Copilot 채팅에 대한 관련 정보는 SQL Server Management Studio(미리 보기)에서 GitHub Copilot 채팅 환경 사용을 참조하세요.

데이터베이스 지침의 작동 방식

데이터베이스 지침은 데이터베이스에 메타데이터로 저장되므로 Copilot가 런타임에 자동으로 검색하고 적용할 수 있습니다. 사용자가 자연어로 질문하거나 T-SQL을 생성하는 등 데이터베이스에 대한 GitHub Copilot와 상호 작용하는 경우 Copilot는 이러한 지침을 추가 컨텍스트로 통합합니다. 이 컨텍스트는 응답이 스키마 이름 또는 추측에만 의존하지 않고 비즈니스 정의, 정식 테이블 및 도메인별 규칙을 반영하도록 합니다. 지침은 세션 간에 유지되며 동일한 데이터베이스에 액세스하는 모든 사용자가 사용할 수 있습니다.

필수 조건

SSMS의 GitHub Copilot에 대한 데이터베이스 지침은 확장 속성의 정보를 사용합니다.

  1. AI 지원 워크로드를 사용하여 SSMS 22.3 이상 버전을 설치합니다.

  2. Copilot 액세스를 사용하여 GitHub 계정에 로그인합니다.

GitHub Copilot를 무료로 사용하세요. 등록하고 AI를 사용하여 더 빠르고 효율적으로 코딩합니다.

GitHub Copilot를 사용하여 데이터베이스 지침 추가 또는 보기

다음 단계에서는 GitHub Copilot를 사용하여 데이터베이스 지침을 만들고 사용하는 방법을 보여 줍니다.

코필로트에게 누락된 맥락을 밝히도록 질문하기

먼저 코필로트에게 자연어로 데이터에 대한 질문을 합니다. 예를 들어 What was revenue for the last quarter of the year? 비즈니스에 회계 연도 및 연도의 시작 날짜가 다르거나 수익에 여러 테이블이 포함된 계산이 필요한 경우 관련 테이블 또는 열이 데이터베이스 명령에 적합한 후보입니다.

비즈니스 규칙을 데이터베이스 명령으로 정의

코필로트 채팅에서 코필로트가 기억할 규칙이나 설명을 설명합니다. 예를 들어 Add an instruction for the Finance.CompanyRevenue table to state that revenue is defined as SUM(NetAmount) excluding refunds recorded in Finance.Refunds.

데이터베이스에 명령 저장

Copilot가 T-SQL 구문을 생성하여 명령을 확장 속성으로 추가하면 이 정보를 데이터베이스 명령으로 유지해야 합니다. 요청 모드에서 GitHub Copilot는 데이터베이스에 대한 수정 쿼리를 실행할 수 없습니다.

-- Created by GitHub Copilot in SSMS - review carefully before executing
EXECUTE sp_addextendedproperty
    @name = N'AGENTS.md',
    @value = N'Revenue is defined as SUM(NetAmount) excluding refunds recorded in Finance.Refunds. When calculating actual revenue, refunds must be subtracted from the Revenue column values.',
    @level0type = N'SCHEMA',
    @level0name = N'Finance',
    @level1type = N'TABLE',
    @level1name = N'CompanyRevenue';

데이터베이스에 명령을 추가하면 Copilot는 이후 상호 작용에 정보를 자동으로 적용합니다.

적용된 명령과 함께 코필로트 사용

Copilot에게 동일하거나 관련된 질문을 다시 What was revenue for the last quarter of the year? 요청합니다. 이제 Copilot는 저장된 명령을 사용하여 규칙을 다시 실행할 필요 없이 수익의 비즈니스 정의에 맞는 결과를 생성합니다. 또한 코필로트 Show me the query used to get this information. 에게 명령에 대한 코필로트의 이해를 확인하도록 요청할 수 있습니다.

추가 예제

테이블, 열 및 저장 프로시저를 포함하여 데이터베이스 개체에 비즈니스 규칙을 적용해야 하는 무한 시나리오가 있습니다.

  • The dbo.Apts table stores information about patient appointments
  • The Status column in dbo.Apts encodes status as: 1 = Scheduled, 2 = Completed, 5 = Confirmed, 99 = Cancelled
  • The DtCrtd column in dbo.Apts lists the date and time the appointment was created

코필로트와 함께 데이터베이스 지침을 사용하는 경우 현재 존재하는 지침에 대해서도 물어볼 수 있습니다.

  • Show me the database instructions for this database
  • Does this database have a constitution set?

GitHub Copilot를 사용하여 데이터베이스 구성 만들기

SSMS의 GitHub Copilot는 데이터베이스에 대해 가장 높은 우선 순위 명령을 설정하는 데이터베이스에 대한 단일 헌법도 지원합니다. 헌법에는 권장 사항, 코딩 지침, 보존 정책 등이 포함될 수 있습니다.

비고

데이터베이스 구성 구현은 SSMS에서 GitHub Copilot를 사용하는 모든 사용자에 대해 GitHub Copilot 대화에 적용됩니다. 권장 사항 및 지침은 GitHub Copilot 대화에만 적용됩니다.

EXECUTE sp_addextendedproperty
    @name = N'CONSTITUTION.md',
    @value = N'Any T-SQL in this database must comply with the organizational standards and guidelines outlined in this constitution document.
 Queries that use SELECT * should not be used.';

요구 사항

데이터베이스 지침은 현재 확장 속성으로만 지원됩니다. GitHub Copilot에서 사용하는 컨텍스트를 제공하기 위해 AGENTS.md 형식을 따릅니다. 개체의 확장 속성 이름은 .이어야 AGENTS.md합니다. 개체에 대해 하나의 AGENTS.md 속성만 존재할 수 있습니다. 명령이 올바르지 않은 경우 sp_updateextendedproperty을(를) 사용하여 업데이트하거나 sp_dropextendedproperty을(를) 사용하여 삭제할 수 있습니다. 데이터베이스 지침이 작동하려면 다른 구성이 필요하지 않습니다.