Поделиться через


Руководство. Создание объектов базы данных в 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 правой кнопкой мыши и выбрав в контекстном меню пункт Управление.

    контекстное меню — пункт

  3. На панели мониторинга щелкните правой кнопкой мыши таблицу dbo.Customers (в мини-приложении поиска) и выберите пункт Изменить данные.

    Совет

    Если база данных содержит множество объектов, мини-приложение поиска позволяет быстро находить искомые таблицы, представления и т. д.

    мини-приложение быстрого поиска

  4. Измените значение в первой строке столбца Email (Адрес электронной почты) на orlando0@adventure-works.com и нажмите клавишу ВВОД, чтобы сохранить изменение.

    изменение данных

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

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

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

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

    Снимок экрана, показывающий редактор запросов с кодом SQL и вызванным параметром sqlCreateStoredProcedure.

  3. Во фрагменте кода для создания хранимой процедуры есть два поля, которые можно быстро изменить: StoredProcedureName и SchemaName. Выберите поле StoredProcedureName, щелкните его правой кнопкой мыши и выберите пункт Изменить все вхождения. Теперь введите getCustomer, и все записи StoredProcedureName изменятся на getCustomer.

    Снимок экрана, показывающий редактор запросов с вызванным параметром

  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 и выберите пункт Показать определение.

    показать определение

  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.

    сохранение в формате 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. Щелкните результат, чтобы открыть отформатированное представление.

    результат теста

Следующие шаги

Из этого руководства вы узнали, как:

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

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