Руководство. Создание объектов базы данных в Azure Data Studio с помощью редактора Transact-SQL

Создание и выполнение запросов, хранимых процедур, скриптов и т. д. — основные задачи специалистов по базам данных. В этом руководстве демонстрируются основные функции редактора T-SQL для создания объектов базы данных.

В этом руководстве вы узнаете, как с помощью Azure Data Studio выполнять следующие задачи.

  • поиск объектов базы данных;
  • изменение данных таблицы;
  • использование фрагментов кода для быстрого написания инструкций T-SQL;
  • просмотр сведений об объектах базы данных с помощью функций Показать определение и Перейти к определению.

Необходимые компоненты

Для работы с этим руководством требуется SQL Server или база данных SQL Azure 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 и нажмите клавишу ВВОД, чтобы сохранить изменение.

    edit data

Создание хранимых процедур с помощью фрагментов кода T-SQL

В Azure Data Studio есть множество встроенных фрагментов кода T-SQL для быстрого создания инструкций.

  1. Откройте новое окно редактора запросов, нажав клавиши CTRL+N.

  2. Введите в редакторе строку sql, с помощью клавиши со стрелкой вниз перейдите к пункту sqlCreateStoredProcedure и нажмите клавишу TAB (или ВВОД), чтобы загрузить фрагмент кода для создания хранимой процедуры.

    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, щелкните возвращенную запись.

Использование функции "Показать определение"

Azure Data Studio предоставляет возможность просмотра определения объекта с помощью функции "Показать определение". В этом разделе создается еще одна хранимая процедура, а затем с помощью функции "Показать определение" определяются имеющиеся в таблице столбцы для быстрого создания тела этой процедуры.

  1. Откройте новое окно редактора, нажав клавиши CTRL+N.

  2. Введите в редакторе строку sql, с помощью клавиши со стрелкой вниз перейдите к пункту sqlCreateStoredProcedure и нажмите клавишу TAB (или ВВОД), чтобы загрузить фрагмент кода для создания хранимой процедуры.

  3. Введите значение setCustomer для поля StoredProcedureName и значение dbo для поля SchemaName.

  4. Замените заполнители @param следующим определением:

    @json_val nvarchar(max)
    
  5. Замените тело хранимой процедуры следующим кодом:

    INSERT INTO dbo.Customers
    
  6. В добавленной строке INSERT щелкните правой кнопкой мыши элемент dbo.Customers и выберите пункт Показать определение.

    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 и выберите пункт Выбрать первые 1000 строк.

  2. Выберите первую строку в представлении результатов (чтобы выделить всю строку, щелкните номер 1 в самом левом столбце), а затем выберите команду Сохранить в формате JSON.

  3. Выберите папку, которую легко запомнить, чтобы можно было удалить файл позднее (например, рабочий стол), и нажмите кнопку Сохранить. Откроется файл в формате JSON.

    save as JSON

  4. Выделите в редакторе данные JSON и скопируйте их.

  5. Откройте новое окно редактора, нажав клавиши CTRL+N.

  6. В предыдущих шагах было показано, как можно легко получить правильно отформатированные данные для выполнения вызова процедуры setCustomer. В приведенном ниже коде аналогичный формат JSON применяется к новым сведениям о клиенте для тестирования процедуры setCustomer. Инструкция включает в себя синтаксические конструкции для объявления параметра и выполнения новых процедур получения и задания. Вы можете скопировать данные из предыдущего раздела, вставить их, а затем изменить в соответствии с приведенным ниже примером либо просто вставить приведенную ниже инструкцию в редактор запросов.

    -- 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 с помощью фрагментов кода;
  • получение сведений об объектах базы данных с помощью функций "Показать определение" и "Перейти к определению".

Чтобы узнать, как включить мини-приложение Пять самых медленных запросов, выполните следующее руководство: