Мы можем записать запросы на обновление и запросы на удаление в представлениях?

В SQL Server 2005 у меня есть некоторые представления, созданные при помощи a SELECT оператор. Мы можем записать UPDATE и DELETE операторы в представлениях?

10
задан halfer 5 February 2014 в 11:29
поделиться

3 ответа

Что ж, вы можете удалить из представления, если это то, о чем вы спрашиваете, но у вас не может быть представления, которое удаляет информацию. Представление - это часть данных из базовых таблиц. Если у вас есть разрешения, вы можете выполнять в представлениях те же операции с данными, что и непосредственно с таблицей.

Таким образом, вы можете сделать что-то вроде:

DELETE FROM my_View WHERE id = 3;

Когда использовать представления
Что такое представление

12
ответ дан 3 December 2019 в 14:00
поделиться

В дополнение к ограниченному обновлению, разрешенному для самого представления, вы можете использовать триггер INSTEAD OF для выполнения гораздо более сложных изменений. ВМЕСТО в основном позволяет вам перехватить обновление или удалить и выполнить практически любое изменение. Ссылки: Статья MSDN .

1
ответ дан 3 December 2019 в 14:00
поделиться

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

  • Любые модификации, включая операторы UPDATE, INSERT и DELETE, должны ссылаться на столбцы только из одной базовой таблицы.
  • Столбцы, которые изменяются в представлении, должны напрямую ссылаться на базовые данные в столбцах таблицы. Они не могут быть получены каким-либо другим способом, например:

    • агрегатной функцией (AVG, COUNT, SUM, MIN, MAX, GROUPING, STDEV, STDEVP, VAR и VARP).
    • Вычисление; столбец не может быть вычислен из выражения с использованием других столбцов. Столбцы, сформированные с помощью операторов множества (UNION, UNION ALL, CROSSJOIN, EXCEPT и INTERSECT), составляют вычисление и также не обновляются.
  • Изменяемые столбцы не могут быть затронуты предложениями GROUP BY, HAVING или DISTINCT.

  • TOP нельзя использовать в операторе select_statement представления, если также указан WITH CHECK OPTION.

и прочтите статью об оставшихся ...

19
ответ дан 3 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: