我正在处理一个项目,我需要在下面声明查询。但是每次我尝试执行它时,它都会在' 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)
我尝试执行它而不声明查询,它工作得很好。发送帮助:(
答案 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语句中,始终仅以';'
结尾。