Не может использовать текст, ntext, или столбцы типа image во 'вставленных' и 'удаленных' таблицах

Я добрался, ошибка "Не может использовать текст, ntext, или столбцы типа image во 'вставленных' и 'удаленных' таблицах", так как существуют ntext поля в исходной таблице, я присоединил триггер к.

Вот решение: http://lazycodeprogrammer.blogspot.com/2009/08/how-to-use-inserteddeleted-with.html

Но исходный (не измененный) запрос достаточно сложен. Что я должен записать вместо ВЫБОРА * ОТ ВСТАВЛЕННОГО, использующего Оператора объединения, как он рекомендуется?

14
задан Álvaro González 5 July 2010 в 09:36
поделиться

2 ответа

Было найдено хорошее решение:

  1. SELECT FROM INSERTED только столбец id (это не ntext или image, и запрос выполняется).
  2. ВЫБРАТЬ из исходной таблицы * с такими же идентификаторами.
  3. При необходимости используйте UPDATED () для INSERTED, чтобы знать, какие столбцы были изменены.
9
ответ дан 1 December 2019 в 10:17
поделиться

Настоящая проблема заключается в том, что вы пытаетесь выбрать столбцы во вставленной таблице, которые имеют тип ntext, text или image. Это запрещено в триггере.

Реальным решением было бы изменить весь ваш ntext на nvarchar (max), текст на varchar (max) и изображение на varbinary (max), как было предложено MS.

MS заявляет, что эти типы устарели и будут удалены в будущей версии.

Кроме того, ntext очень медленен в плане производительности из-за отсутствия данных в строке.

16
ответ дан 1 December 2019 в 10:17
поделиться
Другие вопросы по тегам:

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