자습서: Transact-SQL 편집기를 사용하여 데이터베이스 개체 만들기 - Azure Data Studio

쿼리, 저장 프로시저, 스크립트 등을 만들고 실행하는 것은 데이터베이스 전문가의 핵심 작업입니다. 이 자습서에서는 데이터베이스 개체를 만드는 T-SQL 편집기에서 주요 기능을 보여 줍니다.

이 자습서에서는 Azure Data Studio를 사용하여 다음을 수행하는 방법을 알아봅니다.

  • 데이터베이스 개체 검색
  • 테이블 데이터 편집
  • 코드 조각을 사용하여 빠르게 T-SQL 작성
  • ‘정의 피킹(Peeking)’ 및 ‘정의로 이동’을 사용하여 데이터베이스 개체 세부 정보 보기

필수 조건

이 자습서를 완료하려면 SQL Server 또는 Azure SQL Database TutorialDB가 필요합니다. TutorialDB 데이터베이스를 만들려면 다음 빠른 시작 중 하나를 완료합니다.

데이터베이스 개체를 빠르게 찾고 일반 작업 수행

Azure Data Studio는 데이터베이스 개체를 빠르게 찾을 수 있는 검색 위젯을 제공합니다. 결과 목록은 선택한 개체와 관련된 일반적인 작업(예: 테이블의 데이터 편집)에 대한 상황에 맞는 메뉴를 제공합니다.

  1. 서버 사이드바(Ctrl+G)를 열고 데이터베이스를 확장한 다음 TutorialDB를 선택합니다.

  2. TutorialDB를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 관리를 선택하여 TutorialDB 대시보드를 엽니다.

    context menu - Manage

  3. 대시보드의 검색 위젯에서 dbo.Customers를 마우스 오른쪽 단추로 클릭하고 데이터 편집을 선택합니다.

    개체가 많은 데이터베이스의 경우 검색 위젯을 사용하여 원하는 테이블, 보기 등을 빠르게 찾습니다.

    quick search widget

  4. 첫 번째 행에서 Email 열을 편집하고, orlando0@adventure-works.com을 입력하고, Enter 키를 눌러 변경 내용을 저장합니다.

    edit data

T-SQL 코드 조각을 사용하여 저장 프로시저 만들기

Azure Data Studio는 문을 빠르게 만들기 위한 다양한 기본 제공 T-SQL 코드 조각을 제공합니다.

  1. Ctrl+N을 눌러 새 쿼리 편집기를 엽니다.

  2. 편집기에서 sql을 입력하고, sqlCreateStoredProcedure로 화살표를 내리고, Tab 키(또는 Enter)를 눌러 저장 프로시저 만들기 코드 조각을 로드합니다.

    Screenshot showing the Query Editor with sql typed in the editor and the sqlCreateStoredProcedure option called out.

  3. 저장 프로시저 만들기 코드 조각에는 빠른 편집을 위해 StoredProcedureName 및 SchemaName의 두 필드가 설정되어 있습니다. StoredProcedureName을 선택하고, 마우스 오른쪽 단추를 클릭하고, 모든 항목 변경을 선택합니다. 이제 getCustomer를 입력하고 모든 StoredProcedureName 항목이 getCustomer변경됩니다.

    Screenshot showing the Query Editor with the Change All Occurrences option called out.

  4. SchemaName의 모든 항목을 dbo변경합니다.

  5. 코드 조각에는 자리 표시자 매개 변수 및 업데이트해야 하는 본문 텍스트가 포함됩니다. EXECUTE 문에는 프로시저에 포함될 매개 변수 수를 모르기 때문에 자리 표시자 텍스트도 포함됩니다. 이 자습서에서는 다음 코드와 같이 코드 조각을 업데이트합니다.

    -- Create a new stored procedure called 'getCustomer' in schema 'dbo'
    -- Drop the stored procedure if it already exists
    IF EXISTS (
    SELECT *
    FROM INFORMATION_SCHEMA.ROUTINES
    WHERE SPECIFIC_SCHEMA = N'dbo'
    AND SPECIFIC_NAME = N'getCustomer'
    )
    DROP PROCEDURE dbo.getCustomer
    GO
    -- Create the stored procedure in the specified schema
    CREATE PROCEDURE dbo.getCustomer
    @ID int
    -- add more stored procedure parameters here
    AS
    -- body of the stored procedure
    SELECT  c.CustomerId, 
    c.Name, 
    c.Location, 
    c.Email
    FROM dbo.Customers c
    WHERE c.CustomerId = @ID
    FOR JSON PATH
    
    GO
    -- example to execute the stored procedure we just created
    EXECUTE dbo.getCustomer 1
    GO
    
  6. 저장 프로시저를 만들고 테스트 실행을 제공하려면 F5 키를 누릅니다.

이제 저장 프로시저가 만들어지고 결과 창에 반환된 고객이 JSON으로 표시됩니다. 형식이 지정된 JSON을 보려면 반환된 레코드를 클릭합니다.

정의 피킹(Peeking) 사용

Azure Data Studio는 정의 피킹 기능을 사용하여 개체 정의를 보는 기능을 제공합니다. 이 섹션에서는 두 번째 저장 프로시저를 만들고 정의 피킹(peeking)을 사용하여 테이블에 있는 열을 확인하고 저장 프로시저의 본문을 빠르게 만듭니다.

  1. Ctrl+N을 눌러 새 편집기를 엽니다.

  2. 편집기에서 sql을 입력하고, sqlCreateStoredProcedure로 화살표를 내리고, Tab 키(또는 Enter)를 눌러 저장 프로시저 만들기 코드 조각을 로드합니다.

  3. StoredProcedureName에 setCustomer 를 입력하고 SchemaName의 경우 dbo입력합니다.

  4. @param 자리 표시자를 다음 매개 변수 정의로 바꿉다.

    @json_val nvarchar(max)
    
  5. 저장 프로시저의 본문을 다음 코드로 바꿉니다.

    INSERT INTO dbo.Customers
    
  6. 방금 추가한 INSERT 줄에서 dbo를 마우스 오른쪽 단추로 클릭합니다. 고객 및 정의 피킹(Peeking)을 선택합니다.

    peek definition

  7. 테이블 정의가 표시되므로 테이블에 있는 열을 빠르게 확인할 수 있습니다. 저장 프로시저에 대한 문을 쉽게 완료하려면 열 목록을 참조하세요. 저장 프로시저의 본문을 완료하기 위해 이전에 추가한 INSERT 문 만들기를 완료하고 정의 피킹 창을 닫습니다.

    INSERT INTO dbo.Customers (CustomerId, Name, Location, Email)
        SELECT CustomerId, Name, Location, Email
        FROM OPENJSON (@json_val)
        WITH(   CustomerId int, 
                Name nvarchar(50), 
                Location nvarchar(50), 
                Email nvarchar(50)
     )
    
  8. 쿼리 맨 아래에서 EXECUTE 명령을 삭제하거나 주석으로 처리합니다.

  9. 전체 문은 다음 코드와 같아야 합니다.

    -- Create a new stored procedure called 'setCustomer' in schema 'dbo'
    -- Drop the stored procedure if it already exists
    IF EXISTS (
    SELECT *
        FROM INFORMATION_SCHEMA.ROUTINES
        WHERE SPECIFIC_SCHEMA = N'dbo'
        AND SPECIFIC_NAME = N'setCustomer'
    )
    DROP PROCEDURE dbo.setCustomer
    GO
    -- Create the stored procedure in the specified schema
    CREATE PROCEDURE dbo.setCustomer
        @json_val nvarchar(max) 
    AS
        -- body of the stored procedure
        INSERT INTO dbo.Customers (CustomerId, Name, Location, Email)
        SELECT CustomerId, Name, Location, Email
        FROM OPENJSON (@json_val)
        WITH(   CustomerId int, 
                Name nvarchar(50), 
                Location nvarchar(50), 
                Email nvarchar(50)
        )
    GO
    
  10. setCustomer 저장 프로시저를 만들려면 F5 키를 누릅니다.

쿼리 결과를 JSON으로 저장을 사용하여 setCustomer 저장 프로시저 테스트

이전 섹션에서 만든 setCustomer 저장 프로시저에서는 JSON 데이터를 @json_val 매개 변수에 전달해야 합니다. 이 섹션에서는 저장 프로시저를 테스트할 수 있도록 올바르게 형식이 지정된 JSON 비트를 매개 변수에 전달하는 방법을 보여줍니다.

  1. 서버 사이드바에서 dbo.Customers 테이블을 마우스 오른쪽 단추로 클릭하고 SELECT TOP 1000 Rows를 클릭합니다.

  2. 결과 보기에서 첫 번째 행을 선택하고, 전체 행이 선택되어 있는지 확인하고(가장 왼쪽 열의 숫자 1을 클릭) JSON으로 저장을 선택합니다.

  3. 나중에 파일을 삭제할 수 있도록 폴더를 기억해야 하는 위치로 변경하고(예: 바탕 화면) 저장을 클릭합니다. JSON 형식 파일이 열립니다.

    save as JSON

  4. 편집기에서 JSON 데이터를 선택하고 복사합니다.

  5. Ctrl+N을 눌러 새 편집기를 엽니다.

  6. 이전 단계에서는 setCustomer 프로시저에 대한 호출을 완료하기 위해 적절한 형식의 데이터를 쉽게 가져올 수 있는 방법을 보여줍니다. setCustomer 프로시저를 테스트할 수 있도록 다음 코드에서 새 고객 세부 정보와 동일한 JSON 형식을 사용하는 것을 볼 수 있습니다. 이 문에는 매개 변수를 선언하고 새 get 및 set 프로시저를 실행하는 구문이 포함되어 있습니다. 이전 섹션에서 복사한 데이터를 붙여넣고 다음 예제와 동일하게 편집하거나 쿼리 편집기에 다음 문을 붙여넣을 수 있습니다.

    -- example to execute the stored procedure we just created
    declare @json nvarchar(max) =
    N'[
        {
            "CustomerId": 5,
            "Name": "Lucy",
            "Location": "Canada",
            "Email": "lucy0@adventure-works.com"
        }
    ]'
    
    EXECUTE dbo.setCustomer @json_val = @json
    GO
    
    EXECUTE dbo.getCustomer @ID = 5
    
  7. F5 키를 눌러 스크립트를 실행합니다. 이 스크립트는 새 고객을 삽입하고 새 고객의 정보를 JSON 형식으로 반환합니다. 결과를 클릭하여 서식이 지정된 보기를 엽니다.

    test result

다음 단계

이 자습서에서는 다음 작업 방법을 알아보았습니다.

  • 스키마 개체 빠른 검색
  • 테이블 데이터 편집
  • 코드 조각을 사용하여 T-SQL 스크립트 작성
  • 정의 피킹(Peeking) 및 정의로 이동(Go to Definition)을 사용하여 데이터베이스 개체 세부 정보에 대해 알아보기

5개의 가장 느린 쿼리 위젯을 사용하도록 설정하는 방법을 알아보려면 다음 자습서를 완료합니다.