Я пытаюсь написать триггер SQL Server, который объединяет 3 столбца, но вставляет строку вместо третьего столбца на основе условия.SQL-сервер trigger concat
Например, если col 1
вставлен concat col 1
, col 2
и col 3
. Но когда col 3 = 'DR'
CONCAT Drive
или col 3 = 'ST'
CONCAT Street
и т.д.
Я могу написать триггер для всех 3-х колонок, но возникли проблемы с условной.
CREATE TRIGGER updateAddress
ON [ARCHIVENEW].dbo.a11
AFTER UPDATE
AS BEGIN
SET NOCOUNT ON;
IF UPDATE(STRNAME)
SELECT CASE
WHEN a11.STRTYPE = 'DR' THEN dbo.a11.STRFNAME = cast(dbo.a11.STRADDLF as varchar(2)) + ' ' + STRNAME + ' ' + 'Drive'
WHEN a11.STRTYPE = 'RP' THEN dbo.a11.STRFNAME = cast(dbo.a11.STRADDLF as varchar(2)) + ' ' + STRNAME + ' ' + 'Ramp'
WHEN a11.STRTYPE = 'EX' THEN dbo.a11.STRFNAME = cast(dbo.a11.STRADDLF as varchar(2)) + ' ' + dbo.a11.STRNAME + ' ' + 'Express Way'
ELSE dbo.a11.STRFNAME = cast(dbo.a11.STRADDLF as varchar(2)) + ' ' + dbo.a11.STRNAME
END
Извините, потребовалось несколько дней, чтобы вернуться к этому вопросу и добавить образец кода. Я получаю синтаксическую ошибку около '=', где я пытаюсь установить STRFNAME в конкатенированную строку. Чтобы уточнить, col1 - «1234» col2 - «Main», а col3 - «ST». Когда вставлена строка, я хотел бы, чтобы col4 сказал «1234 Main Street».
Вы пробовали использовать CASE? Не видя кода, мы можем только догадываться о том, что вы пытаетесь сделать. –
Спасибо, Джозеф, я пробовал использовать CASE, но получаю синтаксическую ошибку. Завтра я по телефонам отправлю код. –
хорошо, если у вас есть синтаксическая ошибка, вам просто нужно внимательно посмотреть на свой код и посчитать свой END и запятые и так, прежде чем отправлять код. –