#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 не