Áù¸ö·ÀÖ¹SQL×¢Èëʽ¹¥»÷µÄ½¨Òé
Áù¸ö·ÀÖ¹SQL×¢Èëʽ¹¥»÷µÄ½¨Òé
http://blog.csdn.net/jefflam/archive/2009/06/01/4233359.aspx
SQL×¢Èë¹¥»÷µÄΣº¦ÐԺܴó¡£ÔÚ½²½âÆä·ÀÖ¹°ì·¨Ö®Ç°£¬Êý¾Ý¿â¹ÜÀíÔ±ÓбØÒªÏÈÁ˽âÒ»ÏÂÆä¹¥»÷µÄÔÀí¡£ÕâÓÐÀûÓÚ¹ÜÀíÔ±²ÉÈ¡ÓÐÕë¶ÔÐԵķÀÖδëÊ©¡£
¡¡¡¡Ò»¡¢ SQL×¢Èë¹¥»÷µÄ¼òµ¥Ê¾Àý¡£
¡¡¡¡statement := "SELECT * from Users WHERE Value= " + a_variable + "
¡¡¡¡ÉÏÃæÕâÌõÓï¾äÊÇºÜÆÕͨµÄÒ»ÌõSQLÓï¾ä£¬ËûÖ÷ҪʵÏֵŦÄܾÍÊÇÈÃÓû§ÊäÈëÒ»¸öÔ±¹¤±àºÅÈ»ºó²éѯ´¦Õâ¸öÔ±¹¤µÄÐÅÏ¢¡£µ«ÊÇÈôÕâÌõÓï¾ä±»²»·¨¹¥»÷Õ߸Ä×°¹ýºó£¬¾Í¿ÉÄܳÉÎªÆÆ»µÊý¾ÝµÄºÚÊÖ¡£Èç¹¥»÷ÕßÔÚÊäÈë±äÁ¿µÄʱºò£¬ÊäÈëÒÔÏÂÄÚÈÝSA001’;drop table c_order--¡£ÄÇôÒÔÉÏÕâÌõSQLÓï¾äÔÚÖ´ÐеÄʱºò¾Í±äΪÁËSELECT * from Users WHERE Value= ‘SA001’;drop table c_order--¡£
¡¡¡¡ÕâÌõÓï¾äÊÇʲôÒâË¼ÄØ?‘SA001’ºóÃæµÄ·ÖºÅ±íʾһ¸ö²éѯµÄ½áÊøºÍÁíÒ»ÌõÓï¾äµÄ¿ªÊ¼¡£c_orderºóÃæµÄË«Á¬×Ö·û ָʾµ±Ç°ÐÐÓàϵIJ¿·ÖÖ»ÊÇÒ»¸ö×¢ÊÍ£¬Ó¦¸ÃºöÂÔ¡£Èç¹ûÐ޸ĺóµÄ´úÂëÓï·¨ÕýÈ·£¬Ôò·þÎñÆ÷½«Ö´ÐиôúÂ롣ϵͳÔÚ´¦ÀíÕâÌõÓï¾äʱ£¬½«Ê×ÏÈÖ´ÐвéѯÓï¾ä£¬²éµ½Óû§±àºÅΪSA001 µÄÓû§ÐÅÏ¢¡£È»ºó£¬Êý¾Ý½«É¾³ý±íC_ORDER(Èç¹ûûÓÐÆäËûÖ÷¼üµÈÏà¹ØÔ¼Êø£¬Ôòɾ³ý²Ù×÷¾Í»á³É¹¦)¡£Ö»Òª×¢ÈëµÄSQL´úÂëÓï·¨ÕýÈ·£¬±ãÎÞ·¨²ÉÓñà³Ì·½Ê½À´¼ì²â´Û¸Ä¡£Òò´Ë£¬±ØÐëÑéÖ¤ËùÓÐÓû§ÊäÈ룬²¢×Ðϸ¼ì²éÔÚÄúËùÓõķþÎñÆ÷ÖÐÖ´Ðй¹Ôì SQLÃüÁîµÄ´úÂë¡£
¡¡¡¡¶þ¡¢ SQL×¢Èë¹¥»÷ÔÀí¡£
¡¡¡¡¿É¼ûSQL×¢Èë¹¥»÷µÄΣº¦ÐԺܴó¡£ÔÚ½²½âÆä·ÀÖ¹°ì·¨Ö®Ç°£¬Êý¾Ý¿â¹ÜÀíÔ±ÓбØÒªÏÈÁ˽âÒ»ÏÂÆä¹¥»÷µÄÔÀí¡£ÕâÓÐÀûÓÚ¹ÜÀíÔ±²ÉÈ¡ÓÐÕë¶ÔÐԵķÀÖδëÊ©¡£
¡¡¡¡SQL×¢ÈëÊÇĿǰ±È½Ï³£¼ûµÄÕë¶ÔÊý¾Ý¿âµÄÒ»ÖÖ¹¥»÷·½Ê½¡£ÔÚÕâÖÖ¹¥»÷·½Ê½ÖУ¬¹¥»÷Õ߻ὫһЩ¶ñÒâ´úÂë²åÈëµ½×Ö·û´®ÖС£È»ºó»áͨ¹ý¸÷ÖÖÊֶν«¸Ã×Ö·û´®´«µÝµ½SQLServerÊý¾Ý¿âµÄʵÀýÖнøÐзÖÎöºÍÖ´ÐС£Ö»ÒªÕâ¸ö¶ñÒâ´úÂë·ûºÏSQLÓï¾äµÄ¹æÔò£¬ÔòÔÚ´úÂë±àÒëÓëÖ´ÐеÄʱºò£¬¾Í²»»á±»ÏµÍ³Ëù·¢ÏÖ¡£
¡¡¡¡SQL×¢Èëʽ¹¥»÷µÄÖ÷ÒªÐÎʽÓÐÁ½ÖÖ¡£Ò»ÊÇÖ±½Ó½«´úÂë²åÈëµ½ÓëSQLÃüÁî´®ÁªÔÚÒ»Æð²¢Ê¹µÃÆäÒÔÖ´ÐеÄÓû§ÊäÈë±äÁ¿¡£ÉÏÃæ±ÊÕß¾ÙµÄÀý×Ó¾ÍÊDzÉÓÃÁËÕâÖÖ·½·¨¡£ÓÉÓÚÆäÖ±½ÓÓëSQLÓï¾äÀ¦°ó£¬¹ÊÒ²±»³ÆÎªÖ±½Ó×¢Èëʽ¹¥»÷·¨¡£¶þÊÇÒ»ÖÖ¼ä½ÓµÄ¹¥»÷·½·¨£¬Ëü½«¶ñÒâ´úÂë×¢ÈëÒªÔÚ±íÖд洢»òÕß×÷ΪÔÊé¾Ý´æ´¢µÄ×Ö·û´®¡£ÔÚ´æ´¢µÄ×Ö·û´®ÖлáÁ¬½Óµ½Ò»¸ö¶¯Ì¬µÄSQLÃüÁîÖУ¬ÒÔÖ´ÐÐһЩ¶ñÒâµÄSQL´úÂë¡£
¡¡¡¡×¢Èë¹ý³ÌµÄ¹¤×÷·½Ê½ÊÇÌáǰÖÕÖ¹Îı¾×Ö·û´®£¬È»ºó
Ïà¹ØÎĵµ£º
ÓÃSQLÃüÁî²éѯÊÓͼ¶¨ÒåÓï¾ä£¬¿ÉÒÔÓÃÒÔÏÂÁ½ÖÖ·½·¨£º
sp_helptext 'ÊÓͼÃû' --¶àÐÐÏÔʾ
SELECT text from sysobjects so INNER JOIN syscomments sc ON so.id=sc.id WHERE so.id=OBJECT_ID('ÊÓͼÃû')--µ¥ÐÐÏÔʾ
......
--´´½¨Á´½Ó·þÎñÆ÷
exec sp_addlinkedserver 'server_tmp','','SQLOLEDB','Ô¶³Ì·þÎñÆ÷Ãû»òipµØÖ·'
exec sp_addlinkedsrvlogin 'server_tmp','false',null,'Óû§Ãû','ÃÜÂë'
exec sp_serveroption 'server_lnk','rpc out','true' --Õâ¸öÔÊÐíµ÷ÓÃÁ´½Ó·þÎñÆ÷ÉϵĴ洢¹ý³Ì
go
--µ÷Óãº
exec server_tmp.Êý¾ ......
²Ù×÷²½ÖèÈçÏ£¬¹©²Î¿¼¡£
Êý¾Ý¿âתÐ͹¤×÷Éæ¼°µÄ¹¤×÷ÊÂÏî·ÖÎö£º±í£¬±íÊý¾Ý£¬Ë÷Òý£¬Íâ¼üÔ¼Êø£¬×Ö¶ÎĬÈÏÖµ¡£
´æ´¢¹ý³Ì¡¢º¯Êý¡¢´¥·¢Æ÷¡¢ÊÓͼµÈÓÉÓÚÓï·¨´æÔÚ²îÒ죬ֻÄÜ×ÔÐиÄд´¦Àí¡£
(Ò»)ÔÚMS SQL SERVER·þÎñÆ÷¶ËµÄ×¼±¸¹¤×÷¡£
1).´´½¨¹ØÓÚ±í¡¢ÊÓͼ¡¢Ö÷¼ü¡¢Ë÷Òý¡¢×Ö¶Î×ֵ䡢ĬÈÏÖµÔ¼ÊøµÄ¶ÔÏóÊÓͼ¡£ÒÔ·½±ãÏÂÒ»²½ ......
1.²éѯ³öµ±Ç°Êý¾Ý¿âµÄËùÓÐÖ÷¼üÐÅÏ¢¡£
SELECT A.parent_obj AS TABLEID,
UPPER(E.NAME) AS TABLENAME,
UPPER(A.NAME) AS INDEXNAME,
UPPER(D.NAME) AS COLNAME,
  ......
SQL Server ²éѯһÕűíµÄÖ÷¼ü
http://hi.baidu.com/samxx8/blog/item/7048f8de1725835894ee37b4.html
SELECT a.name
from syscolumns a
inner join sysobjects d on a.id=d.id
where d.name='SPF_Users' and exists(SELECT 1 from sysobjects where xtype=' ......