MSSQL为æ们æä¾äºä¸¤ç§å¨ææ§è¡SQLè¯å¥çå½ä»¤ï¼åå«æ¯EXECåsp_executesql;é常,sp_executesqlåæ´å
·æä¼å¿ï¼å®æä¾äºè¾å
¥è¾åºæ¥å£ï¼èEXEC没æãè¿æä¸ä¸ªæ大ç好å¤å°±æ¯å©ç¨sp_executesqlï¼è½å¤éç¨æ§è¡è®¡åï¼è¿å°±å¤§å¤§æä¾äºæ§è¡æ§è½ï¼è¿å¯ä»¥ç¼åæ´å®å
¨ç代ç ãEXECå¨æäºæ
åµä¸ä¼æ´çµæ´»ãé¤éæ¨æ令人信æççç±ä½¿ç¨EXECï¼å¦ä¾§å°½é使ç¨sp_executesql.
1.EXECç使ç¨
EXECå½ä»¤æ两ç§ç¨æ³ï¼ä¸ç§æ¯æ§è¡ä¸ä¸ªåå¨è¿ç¨ï¼å¦ä¸ç§æ¯æ§è¡ä¸ä¸ªå¨æçæ¹å¤çã以ä¸æ讲çé½æ¯ç¬¬äºç§ç¨æ³ã
ä¸é¢å
使ç¨EXECæ¼ç¤ºä¸ä¸ªä¾å,代ç 1
DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT;
SET @TableName = 'Orders';
SET @OrderID = 10251;
SET @sql =
'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = '+
CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC'
EXEC(@sql);
温馨提示:答案为网友推荐,仅供参考