尝试在过程中执行过程时出错

问题描述 投票:0回答:1

我正在尝试编写一个在其中执行另一个过程的过程,但出现此错误

'@ 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

sql-server sql-server-2005
1个回答
0
投票

这是我的问题的解决方案,这要感谢亚历克斯及其在我的问题下的评论

© www.soinside.com 2019 - 2024. All rights reserved.