Неправильная синтаксическая ошибка при попытке объединить несколько значений в объявленной переменной, которая выводится в SP - PullRequest
1 голос
/ 14 марта 2019

Я использую SQL 2005

@ empId - это входной параметр для SP, который является INT.

Основываясь на некоторой логике, я делаю это ниже в IF ELSEутверждение, он выдает ошибку в выходной строке.в основном я хочу Конкат.Я попытался согласиться, не повезло.

Обратите внимание, @name также является вводом, который является varchar (20)

DECLARE @OUTPUT VARCHAR(50)

@OUTPUT= 'Valid' + CONVERT(VARCHAR(10), @empId) + CONVERT(VARCHAR(10) , @name)

Ошибка

Incorrect syntax near '@Output'.

1 Ответ

2 голосов
/ 14 марта 2019

Вам нужно SET или SELECT:

DECLARE @OUTPUT VARCHAR(50);

SET @OUTPUT = 'Valid' + CONVERT(VARCHAR(10), @empId) + CONVERT(VARCHAR(10), @name);

Возможно, вам будет удобнее сделать replace():

SET OUTPUT = 'Valid @empId @name';
SET @OUTPUT = REPLACE(@OUTPUT, '@empId', @empId);
SET @OUTPUT = REPLACE(@OUTPUT, '@name', @name);

Это один из способов, который я создаюстроки.Я думаю, что легче обрабатывать шаблон, а затем просто заменять каждый элемент по одному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...