Этот парень пытался вставить значения в представление ..., которое невозможно, конечно.
Это неправда. Представление можно вставить в том случае, если оно соответствует t he rules for updatable views, и значения могут быть однозначно отображены для вставки в одну таблицу.
Не вставлена ли в вставленная таблица данные, которые только что были вставлены ?
Для пульта AFTER INSERT
это в основном верно. Строки в псевдо-таблице INSERTED
отражают те, которые были вставлены в таблицу. Для запуска INSTEAD OF INSERT
рабочий стол создается независимо для хранения данных.
Глядя на пример
CREATE VIEW dbo.Foo
AS
SELECT CAST('A' AS varchar(8000)) AS X
GO
CREATE TRIGGER TR
ON Foo
INSTEAD OF INSERT AS
SELECT COUNT(*)
FROM inserted
А затем пытается
SET STATISTICS IO ON;
insert into dbo.Foo
SELECT TOP 1000 REPLICATE('A',8000)
FROM master..spt_values v1;
План выполнения показывает, что он вставляет в кластерный индекс на Foo
Существует, курс без кластеризованного индекса на Foo
создано выше. Таблица inserted
является рабочим столом в tempdb
.
В статистике результаты IO показать
Таблица 'Worktable. Количество отсчетов 0, логическое чтение 7619, физическое чтение 0, чтение с чтением 0, логическое считывание логических чисел 0, физическое чтение lob 0, lob read-ahead читает 0. Таблица «spt_values». Количество сканирования 1, логический считывает 8, физических чтений 0, упреждающего чтения читает 0, Лоб логического читает 0, лоб физических чтений 0, лоб упреждающего чтения читает 0.
(1 строк (ы) пострадавших) Таблица 'Рабочий стол'. Число сканирования 1, логическое чтение 1002, физическое считывание 0, чтение вперед 0, логическое считывание 0, lob физическое чтение 0, чтение с чтением lob 0.
(1000 строк (ы) пострадавших)
Первая ссылка для вставки в него, второй для SELECT
в самой триггера
Вместо того, чтобы триггер является функцией в некоторых базах данных системы, которые, отвечая на ваш вопрос, создают некоторый тип курсора с данными, которые вы используете в команде вставки, чтобы вы могли обрабатывать его внутри этого триггера. –
«Вставить значение в представление, что невозможно». о, вы мало веры. Зависит полностью от вида взгляда. В конце концов, представление представляет собой просто сохраненный запрос –