Конкатенация переменных SQL - PullRequest
1 голос
/ 29 ноября 2011

У меня есть хранимая процедура SQL Server 2000, которая принимает несколько входных переменных.

Мне нужно объединить две из них (обе nvarchar) и передать их другой хранимой процедуре.На данный момент это выглядит так:

EXEC usp_SProc @Variable1, @Variable2 + ' ' + @Variable3

Однако, когда это выполняется, я получаю ошибку:

Incorrect syntax near '+'

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

Спасибо

Ответы [ 2 ]

3 голосов
/ 29 ноября 2011

SQL Server не допускает выражения в EXEC.Вы должны объявить новую переменную, установить объединенное значение и выполнить хранимую процедуру.

DECLARE @V_Concatenated NVARCHAR(200)
SET @V_Concatenated = @Variable2 + ' ' + @Variable3
EXEC usp_SProc @Variable1, @V_Concatenated

Только не забудьте установить @V_Concatenated length в соответствующее значение.

2 голосов
/ 29 ноября 2011
DECLARE @combinedVar nvarchar(size)   -- where size is your expected datatype size
SET @combinedVar  = @Variable2 + ' ' + @Variable3 

EXEC usp_SProc @Variable1, @combinedVar  
...