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

#sql-server

#sql-server

Вопрос:

Я пытаюсь создать триггер для таблицы, в которой есть один столбец типа изображения / текста.Я знаю, что сам SQL не разрешает триггер для столбцов Text, NText и Image.Поэтому я решил провести аудит таблицы без вышеупомянутого столбца типа.Я не хочу использовать вместо триггера, поскольку я меняю одну из существующих программ, которые генерируют триггер для всей таблицы в моей базе данных.

Я хочу, чтобы SELECT * FROM [inserted] WHERE (COLUMN type is not TEXT/IMAGE/NTEXT)

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

Ответ №1:

вы можете использовать DATA_TYPE change test_db

 select DATA_TYPE,*
from test_db.information_schema.columns
order by table_name, ordinal_position

select DATA_TYPE,*
from test_db.information_schema.columns
where  DATA_TYPE = 'TEXT' or DATA_TYPE='IMAGE' or DATA_TYPE='NTEXT'
order by table_name, ordinal_position

select DATA_TYPE,*
from test_db.information_schema.columns
where TABLE_NAME='inserted' and (  DATA_TYPE not in( 'TEXT', 'IMAGE','NTEXT'))
order by table_name, ordinal_position
  

Комментарии:

1. Есть ли у вставленной таблицы ссылка в information_schema.columns?

2. Да, просто запустите последний запрос, я оставляю для вас *, просто чтобы увидеть все столбцы в information_schema; где ИМЯ_ТАБЛИЦЫ=’вставлено’ и (DATA_TYPE не в(‘TEXT’, ‘IMAGE’,’NTEXT’)) он показывает только вашу таблицу, если вы хотите увидеть все таблицыудалить ФИЛЬТР ТАБЛИЦЫ, где (DATA_TYPE не в(‘TEXT’, ‘IMAGE’,’NTEXT’))DATA_TYPE не