在Store Procedure,MS SQL中使用execute('select * from tablename')有什么用处

时间:2013-02-08 02:44:00

标签: mysql sql sql-server stored-procedures

我正在努力弄清楚

的含义
execute('SELECT customerID [CustomerID],customerCode[Customer Code],
firstName +char(32)+ surname AS [Name],street [Street],phone [Phone],*  
FROM tblCustomers  WHERE customerCode like '''+ @custCode +'%''')
存储过程中的

。 我试图搜索出这么多,但最终无法找到答案,我来到这里寻求帮助。 因为,我正在将SP从MS SQL转换为MySQL,我如何在MySQL中进行翻译? Execute('select * from tablename')和'select * from tablename'之间有什么区别吗?

由于

1 个答案:

答案 0 :(得分:0)

SET @sql = CONCAT(' SELECT      *,
                            customerID,
                            customerCode `Customer Code`,
                            CONCAT(firstName, ' ', surname) AS `Name`,
                            street `Street`,
                            phone `Phone` 
                    FROM tblCustomers  
                    WHERE customerCode like ''', @custCode ,'%''');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

或参数化,

SET @sql = '    SELECT      *,
                        customerID,
                        customerCode `Customer Code`,
                        CONCAT(firstName, ' ', surname) AS `Name`,
                        street `Street`,
                        phone `Phone` 
                FROM tblCustomers  
                WHERE customerCode LIKE CONCAT(?, ''%'')';

PREPARE stmt FROM @sql;
EXECUTE stmt USING @custCode;
DEALLOCATE PREPARE stmt;