SQLServer : EXECºÍsp_executesqlµÄÇø±ð
Author URL:http://www.cnblogs.com/xbf321/archive/2008/11/02/1325067.html
Microsoft URL:http://technet.microsoft.com/zh-cn/library/ms188001.aspx
ÕªÒª
1,EXECµÄʹÓÃ
2£¬sp_executesqlµÄʹÓÃ
MSSQLΪÎÒÃÇÌṩÁËÁ½ÖÖ¶¯Ì¬Ö´ÐÐSQLÓï¾äµÄÃüÁ·Ö±ðÊÇEXECºÍsp_executesql;ͨ³£,sp_executesqlÔò¸ü¾ßÓÐÓÅÊÆ£¬ËüÌṩÁËÊäÈëÊä³ö½Ó¿Ú£¬¶øEXECûÓС£»¹ÓÐÒ»¸ö×î´óµÄºÃ´¦¾ÍÊÇÀûÓÃsp_executesql£¬Äܹ»ÖØÓÃÖ´Ðмƻ®£¬Õâ¾Í´ó´óÌṩÁËÖ´ÐÐÐÔÄÜ(¶ÔÓÚÕâ¸öÎÒÔÚºóÃæµÄÀý×ÓÖлáÏê¼Ó˵Ã÷)£¬»¹¿ÉÒÔ±àд¸ü°²È«µÄ´úÂë¡£EXECÔÚijЩÇé¿öÏ»á¸üÁé»î¡£³ý·ÇÄúÓÐÁîÈËÐÅ·þµÄÀíÓÉʹÓÃ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);
×¢£ºÕâÀïµÄEXECÀ¨ºÅÖÐÖ»ÔÊÐí°üº¬Ò»¸ö×Ö·û´®±äÁ¿£¬µ«ÊÇ¿ÉÒÔ´®Áª¶à¸ö±äÁ¿£¬Èç¹ûÎÒÃÇÕâÑùдEXEC£º
EXEC('SELECT TOP('+ CAST(@TopCount AS VARCHAR(10)) +')* from '+QUOTENAME(@TableName) +' ORDER BY ORDERID DESC');
SQL±àÒëÆ÷¾Í»á±¨´í£¬±àÒ벻ͨ¹ý£¬¶øÈç¹ûÎÒÃÇÕâÑù£º
EXEC(@sql+@sql2+@sql3);
±àÒëÆ÷¾Í»áͨ¹ý£»
ËùÒÔ×î¼ÑµÄ×ö·¨ÊǰѴúÂë¹¹Ôìµ½Ò»¸ö±äÁ¿ÖУ¬È»ºóÔٰѸñäÁ¿×÷ΪEXECÃüÁîµÄÊäÈë²ÎÊý£¬ÕâÑù¾Í²»»áÊÜÏÞÖÆÁË£»
EXEC²»Ìṩ½Ó¿Ú
ÕâÀïµÄ½Ó¿ÚÊÇÖ¸£¬Ëü²»ÄÜÖ´ÐÐÒ»¸ö°üº¬Ò»¸ö´ø±äÁ¿·ûµÄÅú´¦Àí£¬ÕâÀïÕ§Ò»ÌýºÃÏñ²»Ã÷°×£¬²»Òª½ô£¬ÎÒÔÚÏÂÃæÓÐÒ»¸öʵÀý£¬ÄúÒ»¿´¾ÍÖªµÀʲôÒâ˼.
DECLARE @TableName VARCHAR(50),@Sql NVARCHAR(MAX),@OrderID INT;
SET @TableName = 'Orders';
SET @OrderID = 10251;
SET @sql = 'SELECT * from '+QUOTENAME(@TableName) +'WHERE OrderID = @OrderID ORDER BY ORDERID DESC'
EXEC(@sql);
¹Ø¼ü¾ÍÔÚSET @sqlÕâÒ»¾ä»°ÖУ¬Èç¹ûÎÒÃÇÔËÐÐÕâ¸öÅú´¦Àí£¬±àÒëÆ÷¾Í»á²úÉúһϴíÎó
Msg 137, Level 15, State 2, Line 1
±ØÐëÉùÃ÷±êÁ¿±äÁ¿ "@OrderID"¡£
ʹÓÃEXECʱ£¬Èç¹ûÄúÏë·ÃÎʱäÁ¿£¬±ØÐë°Ñ±äÁ¿ÄÚÈÝ´®Áªµ½¶¯Ì¬¹¹½¨µÄ´úÂ
Ïà¹ØÎĵµ£º
In the latest installment of the SQL Server interview questions, we will outline questions suitable for a DBA interview to assess the candidates skills related to SQL Server system databases. In this tip, the questions are there to read, but the answers are intentionally hidden to really test your s ......
SQLServerºÍOracleµÄ³£Óú¯Êý¶Ô±È
1.¾ø¶ÔÖµ
S:select abs(-1) value
O:select abs(-1) value from dual
2.È¡Õû(´ó)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.È¡Õû£¨Ð¡£©
S:select floor(-1.001) value
O:select floor(-1.001) value from dual ......
½ñÈÕsqlserver2000µÄ·þÎñÆô¶¯²»ÁË£¬¿´ÁËһϴíÎóÈÕÖ¾“SQL Server evaluation period has expired.”
´ÓÍøÉÏÕÒÁËÕÒ£¬ÖØÐ°²×°sqlserver2000¼´¿É£¬ÖØ×°Ê±¿ÉÄÜ»áÓöµ½“ÒÔǰµÄij¸ö³ÌÐò°²×°ÒÑÔÚ°²×°¼ÆËã»úÉÏ´´½¨¹ÒÆðµÄÎļþ²Ù×÷¡£ÔËÐа²×°³ÌÐò֮ǰ±ØÐëÖØÐÂÆô¶¯¼ÆËã»ú”´íÎ󣬿ɲ鿴±¾ÈËǰһƪÎÄÕ½â¾ö ......
/***
ÓαêµÄʹÓÃ
½²ÁËÕâ¸ö¶àÓαêµÄÓŵ㣬ÏÖÔÚÎÒÃǾÍÇ××ÔÀ´½Ò¿ªÓαêµÄÉñÃØµÄÃæÉ´¡£
ʹÓÃÓαêµÄ˳Ðò£º ÉùÃûÓαꡢ´ò¿ªÓαꡢ¶ÁÈ¡Êý¾Ý¡¢¹Ø±ÕÓαꡢɾ³ýÓαꡣ
1.3.1ÉùÃ÷Óαê
×î¼òµ¥ÓαêÉùÃ÷£ºDECLARE <ÓαêÃû>CURSOR FOR<SELECTÓï¾ä>£»
ÆäÖÐselectÓï¾ä¿ÉÒÔÊǼòµ¥²éѯ£¬Ò²¿ÉÒÔÊǸ´ÔӵĽÓÁ¬²éѯºÍǶÌײéѯ
......