每次我尝试执行下面的代码时,它都会在' B'附近显示错误"错误的语法。"

时间:2017-07-20 07:12:47

标签: mysql

我正在处理一个项目,我需要在下面声明查询。但是每次我尝试执行它时,它都会在' B'附近显示错误"错误的语法。"

    DECLARE @strLineCode VARCHAR (20)
    SET @strLineCode = 'CDP'

    DECLARE @strSQL VARCHAR(5000)  
    SET @strSQL = 'SELECT B.strCurrentLineCode,   
    strLineMachineNo, strSAPAssetNum, B.strResourceSubType   
    FROM tblMachMaster A  
    INNER JOIN vwResourceMaster B   
    ON A.strResourceNumber = B.strResourceNumber' 

    SET @strSQL = @strSQL + 'WHERE B.strCurrentLineCode = ''' + @strLineCode + ''' '

    EXEC(@strSQL)

我尝试执行它而不声明查询,它工作得很好。发送帮助:(

1 个答案:

答案 0 :(得分:0)

SET @strLineCode = 'CDP';
PREPARE stmt FROM 'SELECT B.strCurrentLineCode,   
strLineMachineNo, strSAPAssetNum, B.strResourceSubType   
FROM tblMachMaster A  
INNER JOIN vwResourceMaster B   
ON A.strResourceNumber = B.strResourceNumber WHERE B.strCurrentLineCode = ?' ;
EXECUTE stmt 
 USING @strLineCode;

您可以尝试以上代码。

这里我使用了PREPARE and EXECUTE 声明。

使用它可以简单地执行动态查询。

在每行代码之后,您错过了';'还有一件事。在MySQL语句中,始终仅以';'结尾。