#sql-server #concatenation
#sql-сервер #конкатенация
Вопрос:
У меня есть sql-код, в котором у меня есть разные файлы, и я загружаю их в DB.
Мой запрос заключается в том, можем ли мы регистрировать все сообщения об ошибках и показывать их в журналах с условием ELSE if
ниже приведен мой код
IF @var=1
BEGIN
IF NOT EXISTS(condition)
BEGIN
Error message
Set @var2=1
END
ELSE IF
IF Not EXISTS(condition)
BEGIN
Error message
Set @var2=1
END
ELSE IF NOT EXISTS(condition)
BEGIN
Error message
Set @var2=1
END
END
If(@var2=1)
BEGIN
insert into log
RETURN
END
Теперь, что он делает, это проверяет, является ли first миссией, она зарегистрирует сообщение об ошибке и вернет. чего я хочу, так это если оно не соответствует всем условиям в IF else, тогда оно будет регистрировать все сообщения об ошибках.
Можете ли вы, ребята, помочь мне с этим. Могу ли я объединить сообщения об ошибках в одно и зарегистрировать их и как. Любая помощь в этом.
Заранее спасибо!!
Ответ №1:
Вы можете объявлять переменную сверху, как в моем коде, и объединять ее каждый раз, когда ожидаете сообщения об ошибке.
Я предполагаю, что в вашей строке примера кода в этой строке кода будет отображаться «Сообщение об ошибке».
DECLARE @ERRORMESSAGE AS varchar(255)
IF @var=1
BEGIN
IF NOT EXISTS(condition)
BEGIN
Error message
Set @var2=1
END
IF Not EXISTS(condition)
BEGIN
Error message
Set @var2=1
END
IF NOT EXISTS(condition)
BEGIN
Error message
Set @var2=1
END
END
If(@var2=1)
BEGIN
insert into log
RETURN
END
Комментарии:
1. вы можете добавить ‘return’ в конец, я обновлю свой ответ
2. в журнале отображается значение NULL, если загружен первый файл, а 2-й и 3-й недоступны
3. Да, возможно, потому, что первое условие было выполнено, и оно не перейдет к другому условию, потому что вы используете ELSE IF, попробуйте использовать IF только во всех условиях, чтобы sql сканировал / выполнял каждое условие.
4. я хочу вернуть в конце всего, чтобы он проверил, какой файл доступен, а затем зарегистрировал сообщение
5. @Amitesh круто! Я правильно делаю отступ и заменяю else if на if 🙂