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ʱ£¬Èç¹ûÄúÏë·ÃÎʱäÁ¿£¬±ØÐë°Ñ±äÁ¿ÄÚÈÝ´®Áªµ½¶¯Ì¬¹¹½¨µÄ´úÂ
Ïà¹ØÎĵµ£º
ÏÖÔÚÒ»°ã³£ÓõÄÓÐÒÔÏÂ2ÖÖ·½·¨:
1. select top @pagesize * from table1 where id not in (select top @pagesize*(@page-1) id from table1 order by id) order by id
2. select * from (select top @pagesize * from (select top @pagesize*@page * from table1 order by id) a order by id desc) b or ......
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 ......
½ñÈÕsqlserver2000µÄ·þÎñÆô¶¯²»ÁË£¬¿´ÁËһϴíÎóÈÕÖ¾“SQL Server evaluation period has expired.”
´ÓÍøÉÏÕÒÁËÕÒ£¬ÖØÐ°²×°sqlserver2000¼´¿É£¬ÖØ×°Ê±¿ÉÄÜ»áÓöµ½“ÒÔǰµÄij¸ö³ÌÐò°²×°ÒÑÔÚ°²×°¼ÆËã»úÉÏ´´½¨¹ÒÆðµÄÎļþ²Ù×÷¡£ÔËÐа²×°³ÌÐò֮ǰ±ØÐëÖØÐÂÆô¶¯¼ÆËã»ú”´íÎ󣬿ɲ鿴±¾ÈËǰһƪÎÄÕ½â¾ö ......
--Óï ¾ä¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¹¦ ÄÜ
--Êý¾Ý²Ù×÷
SELECT¡¡¡¡¡¡--´ÓÊý¾Ý¿â±íÖмìË÷Êý¾ÝÐкÍÁÐ
INSERT¡¡¡¡¡¡--ÏòÊý¾Ý¿â±íÌí¼ÓÐÂÊý¾ÝÐÐ
DELETE¡¡¡¡¡¡--´ÓÊý¾Ý¿â±íÖÐɾ³ýÊý¾ÝÐÐ
UPDATE¡¡¡¡¡¡--¸üÐÂÊý¾Ý¿â±íÖеÄÊý¾Ý
--Êý¾Ý¶¨Òå
CREATE TABLE¡¡¡¡--´´½¨Ò»¸öÊý¾Ý¿â ......
//´´½¨DBhelperÊý¾Ý¿âÁ´½ÓÎļþ
private static string sqlcon = "server=.;database=myschool;uid=sa;pwd=sa";
public static SqlConnection connection = new SqlConnection(sqlcon ......