SQL Server 2008ÖеıíÖµÐͲÎÊý
SQL Server 2008ÖеıíÖµÐͲÎÊý
×÷ÕߣºAl Tenhundfeld ÒëÕß Õź£Áú¡¡
±íÖµÐͲÎÊý£¨Table-valued parameters£©ÊÇSQL Server 2008ÖÐÒýÈëµÄÒ»ÖÖÐÂÌØÐÔ£¬ËüÌṩÁËÒ»ÖÖÄÚÖõķ½Ê½£¬Èÿͻ§¶ËÓ¦ÓÿÉÒÔֻͨ¹ýµ¥¶ÀµÄÒ»Ìõ²Î»¯ÊýSQLÓï¾ä£¬¾Í¿ÉÒÔÏòSQL Server·¢ËͶàÐÐÊý¾Ý¡£
±íÖµÐͲÎÊý£¨Table-valued parameters£©ÊÇSQL Server 2008ÖÐÒýÈëµÄÒ»ÖÖÐÂÌØÐÔ£¬ËüÌṩÁËÒ»ÖÖÄÚÖõķ½Ê½£¬Èÿͻ§¶ËÓ¦ÓÿÉÒÔֻͨ¹ýµ¥¶ÀµÄÒ»Ìõ²Î»¯ÊýSQLÓï¾ä£¬¾Í¿ÉÒÔÏòSQL Server·¢ËͶàÐÐÊý¾Ý¡£
ÕâÒ»¹¦ÄܵĻù´¡ÊÇSQL Server 2008ÖÐ×îеÄÓû§×Ô¶¨Òå±íÀàÐÍ£¨User-Defined Table Types£©£¬ËüÔÊÐíÓû§½«±íµÄ¶¨Òå×¢²áΪȫ¾ÖÖÜÖªÀàÐÍ¡£×¢²áÖ®ºó£¬ÕâЩ±íÀàÐÍ¿ÉÒÔÏñ±¾µØ±äÁ¿Ò»ÑùÓÃÓÚÅú´¦ÀíÖС¢ÒÔ¼°´æ´¢¹ý³ÌµÄº¯ÊýÌåÖУ¬ºÜÏñÔçÆÚSQL Server°æ±¾ÖÐͨÓñí±äÁ¿µÄÇ¿ÀàÐÍ»¯°æ±¾¡£µ«ÊÇ£¬ÓëͨÓñí±äÁ¿ÓÐËù²»Í¬µÄÊÇ£¬Óû§×Ô¶¨Òå±íÀàÐ͵ıäÁ¿¿ÉÒÔ×÷Ϊ²ÎÊýÔÚ´æ´¢¹ý³ÌºÍ²ÎÊý»¯TSQLÖÐʹÓá£
Óû§×Ô¶¨Òå±íÀàÐ͵ÄʹÓÃÓÐÐí¶àÏÞÖÆ£º
Ò»¸öÓû§×Ô¶¨Òå±íÀàÐͲ»ÔÊÐíÓÃÀ´¶¨Òå±íµÄÁÐÀàÐÍ£¬Ò²²»ÄÜÓÃÀ´¶¨ÒåÒ»¸öÓû§×Ô¶¨Òå½á¹¹ÀàÐ͵Ä×ֶΡ£
²»ÔÊÐíÔÚÒ»¸öÓû§×Ô¶¨Òå±íÀàÐÍÉÏ´´½¨Ò»¸ö·Ç¾ÛºÏË÷Òý£¬³ý·ÇÕâ¸öË÷ÒýÊÇ»ùÓÚ´ËÓû§×Ô¶¨Òå±íÀàÐÍ´´½¨µÄÖ÷¼ü»òÎ¨Ò»Ô¼Êø¡£
ÔÚÓû§×Ô¶¨Òå±íÀàÐ͵͍ÒåÖУ¬²»ÄÜÖ¸¶¨È±Ê¡Öµ¡£
Ò»µ©´´½¨ºó£¬¾Í²»ÔÊÐíÔÙ¶ÔÓû§×Ô¶¨Òå±íÀàÐ͵͍Òå½øÐÐÐ޸ġ£
Óû§×Ô¶¨Ò庯Êý²»ÄÜÒÔÓû§¶¨Òå±íÀàÐÍÖеļÆËãÁж¨ÒåΪ²ÎÊýÀ´µ÷Óá£
Ò»¸öÓû§×Ô¶¨Òå±íÀàÐͲ»ÔÊÐí×÷Ϊ±íÖµÐͲÎÊýÀ´µ÷ÓÃÓû§×Ô¶¨Ò庯Êý¡£
µ±Óû§×Ô¶¨Òå±íÀàÐÍ×÷Ϊ±íÖµÐͲÎÊýʱ£¬»¹Óиü¶àÏÞÖÆ£¬ÀýÈ磬ÔÚ²ÎÊý»¯Óï¾ä»ò´æ´¢¹ý³ÌÖУ¬ËüÃÇÊÇÖ»¶ÁµÄ£º
²»ÔÊÐí¸üжàÐбíÖµÐͲÎÊýÖеÄÁÐÖµ£¬Ò²²»ÔÊÐí²åÈë»òɾ³ýÐС£Èç¹ûÏëÒªÐÞ¸ÄÄÇЩÒѾ´«Èëµ½´æ´¢¹ý³Ì»ò²ÎÊý»¯Óï¾äÖеıíÖµÐͲÎÊýÖеÄÊý¾Ý£¬Ö»ÄÜͨ¹ýÏòÁÙʱ±í»ò±í±äÁ¿ÖвåÈëÊý¾ÝÀ´ÊµÏÖ¡£
ÔÚADO.NETÖУ¬¿ÉÒÔÀûÓñê×¼µÄSqlParameterÀàÐÍÀ´Ê¹ÓÃÓû§×Ô¶¨Òå±íÀàÐÍ£º
TypeName²ÎÊý±ØÐëÉèÖÃΪÓû§×Ô¶¨Òå±íÀàÐ͵ÄÃû³Æ£¬ÀýÈ磺dbo.PersonInfo
SqlDbType±ØÐëÉèÖÃΪSqldbType.Structured
Value²ÎÊýµÄÀàÐÍÊý¾Ý±ØÐëÓ
Ïà¹ØÎĵµ£º
SQL×¢ÈëÊÇ×î³£¼ûµÄ¹¥»÷·½Ê½Ö®Ò»,Ëü²»ÊÇÀûÓòÙ×÷ϵͳ»òÆäËüϵͳµÄ©¶´À´ÊµÏÖ¹¥»÷µÄ,¶øÊdzÌÐòÔ±ÒòΪûÓÐ×öºÃÅжÏ,±»²»·¨
Óû§×êÁËSQLµÄ¿Õ×Ó,ÏÂÃæÎÒÃÇÏÈÀ´¿´ÏÂʲôÊÇSQL×¢Èë:
±ÈÈçÔÚÒ»¸öµÇ½½çÃæ,ÒªÇóÓû§ÊäÈëÓû§ÃûºÍÃÜÂë:
& ......
SQL ServerÁ¬½ÓÔ¶³ÌÊý¾ÝÔ´µÄ»ù±¾·½·¨ÓÐÏÂÃæÈýÖÖ£º
OPENDATASOURCE
: The OPENDATASOURCE function is used to
specify connection information for a remote data source by specifying
the OLE DB provider and an initialization string. OPENDATASOURCE can be
used directly within a SELECT, INSERT, UPDATE, or ......
¡¾Ê¾Àý1.1¡¿ ²éѯ¹ÍÔ±±àºÅΪ7788µÄ¹ÍÔ±ÐÕÃûºÍ¹¤×Ê¡£
²½Öè1£ºÓÃSCOTT/TIGERÕË»§µÇ¼SQL*Plus¡£
²½Öè2£ºÔÚÊäÈëÇøÊäÈëÒÔϳÌÐò£º
/*ÕâÊÇÒ»¸ö¼òµ¥µÄʾÀý³ÌÐò*/
SET SERVEROUTPUT ON
DECLARE--¶¨Ò岿·Ö±êʶ
v_name VARCHAR2 ......
¡¾ÑµÁ·6.1¡¿¡¡Ê¹ÓÃÒþʽÓαêµÄÊôÐÔ£¬Åж϶ԹÍÔ±¹¤×ʵÄÐÞ¸ÄÊÇ·ñ³É¹¦¡£
²½Öè1£ºÊäÈëºÍÔËÐÐÒÔϳÌÐò£º
BEGIN
UPDATE emp SET sal=sal+100 WHERE empno=1234;
IF SQL%FOUND THEN
DBMS_OUTPUT.PUT_LINE('³É¹¦Ð޸ĹÍÔ±¹¤×Ê£¡');
......
SQL Server ·ÖÒ³
½¨Á¢±í£º
CREATE TABLE [TestTable] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Note] [nvarchar ......