Я пытаюсь написать процедуру, которая выполняет другую процедуру внутри нее, но я получаю эту ошибку
Неверный синтаксис рядом с '@ PRIMARY_AM'
но я получаю эту ошибку только с переменными, которые имеют функцию CAST()
ИЛИ ISNULL()
ИЛИ REPLACE()
. Если я закомментирую строку с @PRIMARY_AM
, она скажет
Неверный синтаксис рядом с 'ISNULL'
CREATE PROCEDURE [dbo].[RUN_PROCESS]
@PRIMARY_NO VARCHAR(20) = NULL,
@COMBINED_AM INT = NULL,
@PRIMARY_BOR VARCHAR(40) = NULL,
@PRIMARY_AM INT = NULL,
@SECONDARY_AM INT = NULL,
@SECONDARY_DT SMALLDATETIME = NULL,
@PRIMARY_CD VARCHAR(10) = NULL,
@O_ID INT OUTPUT
AS
EXEC dbo.LINK_PROCESS
@PRIMARY_NO = @PRIMARY_NO,
@COMBINED_AM = CAST(@PRIMARY_AM + @SECONDARY_AM AS VARCHAR),
@PRIMARY_BOR = REPLACE(ISNULL(@PRIMARY_BOR, ''), '''',' '),
@PRIMARY_AM = CAST(ISNULL(@PRIMARY_AM, 0) AS VARCHAR),
@SECONDARY_AM = CAST(ISNULL(@SECONDARY_AM, 0) AS VARCHAR),
@SECONDARY_DT = CAST(@SECONDARY_DT AS VARCHAR),
@PRIMARY_CD = ISNULL(@PRIMARY_CD, ''),
@O_ID = @O_ID OUTPUT;
Если я удалю эти функции CAST()
,REPLACE()
и ISNULL()
тогда я могу выполнить запрос без проблем. Я не знаю, почему это не работает.
Я использую SQL Server 2005