SQL Server2005µÄXMLÊý¾ÝÀàÐÍÖ®»ù´¡Æª2
value·½·¨
µ±Äã²»Ïë½âÊÍÕû¸ö²éѯµÄ½á¹û¶øÖ»ÏëµÃµ½Ò»¸ö±êÁ¿ÖµÊ±£¬Õâ¸övalue·½·¨ÊǺÜÓаïÖúµÄ¡£Õâ¸övalue·½·¨ÓÃÓÚ²éѯXML²¢ÇÒ·µ»ØÒ»¸öÔ×ÓÖµ¡£
Õâ¸övalue·½·¨µÄÓï·¨ÈçÏ£º
value(XQuery£¬datatype)
½èÖúÓÚvalue·½·¨£¬Äã¿ÉÒÔ´ÓXMLÖеõ½µ¥¸ö±êÁ¿Öµ¡£Îª´Ë£¬Äã±ØÐëÖ¸¶¨XQueryÓï¾äºÍÄãÏëÒªËü·µ»ØµÄÊý¾ÝÀàÐÍ£¬²¢ÇÒÄã¿ÉÒÔ·µ»Ø³ýÁËXMLÊý
¾ÝÀàÐÍÍâµÄÈκÎÊý¾ÝÀàÐÍ¡£ÀýÈ磬Èç¹ûÄãÏëµÃµ½Ã¿Ò»¸öС×éÖеĵÚÒ»¸öͶÇòÊÖµÄÃû×Ö£¬Äã¿ÉÒÔ±àдÈçÏÂÐÎʽµÄ²éѯÓï¾ä£º
½øÐÐÒ»´Î²éѯÒԵõ½µ¥¸öÖµ
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
SELECT TeamDoc.value(
'(/Team/Players/Pitcher/@name)[1]'£¬
'nvarchar(max)')
AS FirstPitcher
from Team
ÔÚÿһ¸öС×éµÄµÚÒ»¸öͶÇòÊֵıêÁ¿ÖµÖеÄÕâ¸ö²éѯ½á¹û·µ»ØÖµÈçÏ£º
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
FirstPitcher
------------------------------
John Smoltz
(1 row(s) affected)
×¢Ò⣬queryºÍvalue·½·¨Ö®¼äµÄ²»Í¬ÔÚÓÚ£¬query·½·¨·µ»ØÒ»¸öXMLÊý¾ÝÀàÐÍ-Ëü°üº¬²éѯµÄ½á¹û£»¶øvalue·½·¨·µ»ØÒ»¸ö´øÓвéѯ½á¹ûµÄ·Ç
XMLÊý¾ÝÀàÐÍ¡£ÁíÍ⣬value·½·¨½öÄÜ·µ»Øµ¥¸öÖµ(»ò±êÁ¿Öµ)¡£Èç¹ûÄãÊÔͼ´´½¨Ò»¸öʹÓÃvalue·½·¨·µ»Ø¶àÓÚÒ»¸öÖµµÄXQuery±í´ïʽ£¬Ä㽫µÃµ½Ò»
¸ö´íÎó¡£
modify·½·¨
¾¡¹ÜXQuery±ê×¼²¢Ã»ÓÐÌṩһÖÖ¸üÐÂXMLµÄ»úÖÆ£¬µ«ÊÇSQL Server 2005ÌṩÁËÒ»ÖÖ·½·¨ÓÃÓÚ¼´Ê±µØÐÞ¸ÄÒ»¸öXML¶ÔÏóµÄÒ»²¿·Ö¡£ÕâÒâζ×Å£¬
Äã²»±Ø½öΪÁËÐ޸Ķø¼ìË÷Ò»¸öÍêÕûµÄXMLÎĵµ¡£ÎªÁ˼´Ê±ÐÞ¸ÄÒ»¸öÎĵµ£¬Äã¿ÉÒÔ²ÉÓÃÒ»ÖÖ½áºÏ·½Ê½-Modify·½·¨ºÍSQL Server 2005µÄеÄXMLÊý
¾ÝÐÞ¸ÄÓïÑÔ(XML DML)¡£
Modify·½·¨µÄÓï·¨ÊÇ£º
modify(£¼XMLDML£¾)
¸Ã·½·¨½öʹÓÃÒ»¸ö²ÎÊý£ºXML DMLÓï¾ä¡£XML DMLÒ²ÀàËÆÓÚSQLµÄinsert£¬updateºÍdeleteÓï·¨£¬µ«ÊDz¢²»Ò»Ñù¡£ÀýÈ磬Äã¿ÉÒÔͨ¹ýʹÓÃ
insert DMLÓï¾äÀ´ÐÞ¸ÄXML£º
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
SET @doc.modify('
insert £¼Pitcher name="Jaret Wright"/£¾ as last
into (/Team/Players)[1]
')
ÁíÍ⣬Ä㻹¿ÉÒÔͨ¹ýµ÷ÓÃÒ»¸öUPDATEÓï¾ä²¢ÐÞ¸ÄÒ»¸öXMLÁÐÀ´ÊµÏÖͬÑùÄ¿µÄ£º
ÐÞ¸ÄÒ»¸öXMLÎĵµ¶ø²»ÍêÈ«Ìæ»»Ëü£º
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
UPDATE Team
SET TeamDoc.modify('
insert £¼Pitcher name="Jaret Wright"/£¾ as last
into (/Team/Players)[1]
')
WHERE TeamDoc.exist('/Team[@name="Braves"]') = 1
×¢Ò⣬ÔÚÕâ¸öUPDATEÓï¾äÖеÄSET×Ӿ䲢²»×ñÑÄã¹ýÈ¥±àдSQLʱËùʹÓõÄSET x = y ģʽ¡£¸ÃÓï·¨¼Ù¶¨£¬ÄãÄܹ»Ìṩһ¸öÍêȫеÄÖµÀ´´ú
Ïà¹ØÎĵµ£º
µ÷ÕûµÄÄ¿µÄ¾ÍÊÇΪÁËÏûºÄ×îСµÄ×ÊÔ´À´Íê³É¹¦ÄÜ£¬Í¨¹ý²é¿´Ö´Ðмƻ®ºÍ¸÷ÖÖͳ¼ÆÐÅÏ¢À´·Ö±æµ÷ÕûºóµÄsql¶Ô×ÊÔ´µÄºÄ·ÑÇé¿ö£¬À´ÕÒ³öÒ»¸ö³É±¾×îСµÄsqlÓï¾ä
¼ì²éϵͳµÄI/OÎÊÌâ
vmstateÄܼì²éÕû¸öϵͳµÄiostat£¨IO statistics£©
²é¿´¸ÃSQLµÄresponse time(db block gets/consistent gets/physical reads/sorts (disk)) ......
select * from tableName where datediff(week,dateField,getdate())=0
ÕâÑù²é³öÀ´µÄ½á¹ûÊÇ´ÓÐÇÆÚÌìµ½ÐÇÆÚÁù(ÀÏÍâĬÈÏÐÇÆÚÌìÊÇÒ»ÖܵĵÚÒ»Ìì).
Èç¹ûÏëÒÔÐÇÆÚÒ»×÷ΪµÚÒ»ÌìµÄ»°,Á½¸öʱ¼ä¶¼ÐèÒª¼õÒ»,ÈçÏÂ:
select * from tableName where datediff(week,dateField-1,getdate()-1)=0 ......
Ò»¸ö¶¨ÒåEmailµÄÀý×Ó
<?xml version="1.0">
<!DOCTYPE message[
<!ELEMENT message(header,body,signature,footer)> --¶¨ÒåÁËmessageµÄ×ÓÔªËØ
<!ELEMENT header(date,from,to,subject,banner)> --header»¹ÓÐ×ÓÔªËØ
<!ELEMENT ......
Sql Server ÖÐÒ»¸ö·Ç³£Ç¿´óµÄÈÕÆÚ¸ñʽ»¯º¯Êý
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GE ......
1. ¶¨ÒåÓα궨Òå
ÓαêÓï¾äµÄºËÐÄÊǶ¨ÒåÁËÒ»¸öÓαê±êʶÃû£¬²¢°ÑÓαê±êʶÃûºÍÒ»¸ö²éѯÓï¾ä¹ØÁªÆðÀ´¡£DECLAREÓï¾äÓÃÓÚÉùÃ÷Óα꣬Ëüͨ¹ýSELECT²éѯ¶¨ÒåÓÎ±ê´æ´¢µÄÊý¾Ý¼¯ºÏ¡£Óï¾ä¸ñʽΪ£º
DECLARE ÓαêÃû³Æ [INSENSITIVE] [SCROLL]
CURSOR FOR selectÓï¾ä
[FOR{READ ONLY|UPDATE[OF ÁÐÃû×Ö±í]}]
²ÎÊý˵Ã÷£º
INSENSITIVEÑ¡Ï ......