Мы используем веб-сервис, который решил изменить максимальную длину поля с 255. У нас есть устаревшая таблица поставщиков, которая по-прежнему ограничена 255. Мы надеемся использовать триггер для временного решения этой проблемы до мы можем реализовать более удобное для бизнеса решение в нашей следующей итерации.
Вот с чего я начал:
CREATE TRIGGER [mySchema].[TruncDescription]
ON [mySchema].[myTable]
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [mySchema].[myTable]
SELECT SubType, type, substring(description, 1, 255)
FROM inserted
END
Однако, когда я пытаюсь вставить на myTable
, я получаю ошибку:
Строка или двоичные данные будут
усеченный. Заявление было
прекращается.
Я пытался поэкспериментировать с SET ANSI_WARNINGS OFF
, который позволял работать запросу, но затем просто не вставлял никаких данных в столбец описания.
Есть ли способ использовать триггер для обрезания слишком длинных данных, или есть другая альтернатива, которую я могу использовать, пока не будет разработано более красноречивое решение? Мы довольно ограничены в модификациях таблиц (т.е. мы не можем), потому что это таблица поставщиков, и мы не контролируем веб-сервис, который мы потребляем, поэтому мы не можем попросить их исправить это. Любая помощь будет оценена.