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


Изменение данных с помощью представления

Относится к:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsСистема аналитической платформы (PDW)SQL база данных в Microsoft Fabric

Данные базовой таблицы в SQL Server можно изменить с помощью SQL Server Management Studio или Transact-SQL.

Ограничения

См. раздел "Обновляемые представления" в CREATE VIEW.

Разрешения

Требуется UPDATE, INSERTили DELETE разрешения в целевой таблице в зависимости от выполняемого действия.

Использование SQL Server Management Studio

Изменение данных таблицы с помощью представления

  1. В обозревателе объектовразверните базу данных, содержащую представление, а затем разверните Представления.

  2. Щелкните правой кнопкой мыши представление и выберите Изменить 200 верхних строк.

  3. Возможно, вам потребуется изменить инструкцию SELECT в области SQL, чтобы вернуть изменяемые строки.

  4. На панели Результаты найдите строку для изменения или удаления. Чтобы удалить строку, щелкните правой кнопкой мыши строку и выберите Удалить. Чтобы изменить данные в одном или нескольких столбцах, измените данные в столбце.

    Невозможно удалить строку, если представление ссылается на несколько базовых таблиц. Можно обновлять только те столбцы, которые принадлежат к одной базовой таблице.

  5. Чтобы вставить строку, прокрутите строки вниз до конца и вставьте новые значения.

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

Использование Transact-SQL

Обновление данных таблицы с помощью представления

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере изменяется значение в столбцах StartDate и EndDate для определенного сотрудника путем создания ссылки на столбцы в представлении HumanResources.vEmployeeDepartmentHistory. Это представление возвращает значения из двух таблиц. Эта операция успешна, потому что изменяемые столбцы принадлежат только одной из базовых таблиц.

    USE AdventureWorks2022;
    GO
    
    UPDATE HumanResources.vEmployeeDepartmentHistory
        SET StartDate = '20110203',
            EndDate   = GETDATE()
    WHERE LastName = N'Smith'
          AND FirstName = 'Samantha';
    GO
    

Дополнительные сведения см. в разделе UPDATE.

Вставка данных таблицы с помощью представления

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере выполняется вставка новой строки в базовую таблицу HumanResources.Department путем указания соответствующих столбцов в представлении HumanResources.vEmployeeDepartmentHistory. Эта инструкция была выполнена успешно, поскольку были указаны только столбцы из одной базовой таблицы, а другие столбцы в базовой таблице имеют значения по умолчанию.

    USE AdventureWorks2022;
    GO
    
    INSERT INTO HumanResources.vEmployeeDepartmentHistory (Department, GroupName)
    VALUES ('MyDepartment', 'MyGroup');
    GO
    

Дополнительные сведения см. в разделе INSERT.