´Ó SQL Server 2005 Öд¦Àí XML(1)
Microsoft SQL Server 2005 ÖеÄÖØ´ó¸ü¸ÄÖ®Ò»Êǰüº¬ÁË XML Êý¾ÝÀàÐÍ¡£´ËÊý¾ÝÀàÐÍÊǵÚÒ»ÀàÀàÐÍ£¬¾ÍÏñ INT »ò VARCHAR Ò»Ñù£¬¶øÇÒ SQL Server 2005 ´ðӦʹÓÃһϵÁÐ XML ÌØ¶¨µÄº¯Êý¶Ô´ËÊý¾ÝÀàÐͽøÐо͵زéѯºÍ´¦Àí¡£Ëü»¹Ö§³Ö´æ´¢Êý¾Ý¿âÖÐµÄ XML ¼Ü¹¹µÄ¼¯ºÏ£¬´Ó¶øÆôÓûùÓÚÊý¾Ý¿âµÄ¼Ü¹¹ÑéÖ¤¡£ÁíÍ⣬SQL Server 2005 ´ó´óµØÀ©Õ¹ÁË XML ×éºÏ£¨SELECT ... FOR XML Óï¾ä£©µÄ¹¦ÄÜ£¬À©Õ¹ÁË OpenXML() XML ·Ö½âº¯Êý£¬²¢Õë¶Ô XML Êý¾ÝÀàÐÍÌṩÁËÒ»¸öÐ嵀 nodes() º¯ÊýÒÔ½øÐиüÇáÁ¿¼¶µÄ·Ö½â¡£
¼ÈÈ»¶ÔÊý¾Ý¿â·þÎñÆ÷ÔöÇ¿ÁË´ËÐ嵀 XML ¹¦ÄÜ£¬ÄÇô¶Ô Microsoft ADO.NET 2.0 ÖÐµÄ SqlClient Êý¾ÝÌṩ³ÌÐòÒ²½øÐÐÔöÇ¿¾Í²»»áÁîÈ˸е½¾ªÒìÁË¡£¶Ô ADO.NET DataSet Ò²Óиü¸Ä£¬ÒÔ±ãÖ§³ÖÀàÐÍ XML µÄ DataColumn£¬¶øÇÒ System.Data ºÍ System.Xml Ö®¼äµÄ¡°¼¯³Éµã¡±µÃµ½ÁËÍØ¿í¡£ÔÚ±¾ÎÄÖУ¬ÎÒ½«Ì½¾¿ÔÚ¿Í»§¶ËÉÏʹÓà SQL Server 2005 XML Êý¾ÝÀàÐÍ¡£
SQL Server 2005 ¿ÉÒÔ²úÉúÁ½Àà XML Êä³ö¡£Óï¾ä SELECT * FROM AUTHORS FOR XML AUTO ²úÉú XML Á÷£¬¶ø²»ÊÇÒ»ÁÐÒ»ÐеÄÐм¯¡£¸ÃÊä³öÀàÐÍÓë SQL Server 2000 ÖеÄÊä³öÀàÐÍÏà±ÈûÓиı䡣ֻÊÇÒòΪ²éѯ·ÖÎöÆ÷¹¤¾ßÖеÄÏÞÖÆ£¬XML Á÷Êä³öÔÚ SQL Server ²éѯ·ÖÎöÆ÷ÖвÅÏÔʾΪһÁÐÒ»ÐеÄÐм¯¡£Äú¿ÉÒÔͨ¹ýÆäÌØ¶¨µÄΨһ±êʶ·ûÃû³Æ¡°XML_F52E2B61-18A1-11d1-B105-000805F49916B¡±À´½«ÕâÖÖÁ÷Óë¡°ÆÕͨ¡±ÁÐÇø·Ö¿ªÀ´¡£´ËÃû³ÆÊµ¼ÊÉÏÊǵײã TDS£¨ÕâÊÇÒ»ÖÖ±í¸ñʽµÄÊý¾ÝÁ÷£¬SQL Server ÍøÂç¸ñʽ£©·ÖÎöÆ÷µÄָʾÆ÷£¬ÔÚÕâÖÖ·ÖÎöÆ÷ÖУ¬ÁÐÓ¦¸ÃÁ÷ÖÁ¿Í»§¶Ë£¬¶ø²»ÊÇÏñÆÕͨÐм¯ÄÇÑù·¢ËÍ¡£ÓÐÒ»ÖÖ·Ç·²µÄ·½·¨ SqlCommand.ExecuteXmlReader ÓÃÀ´ÔÚ¿Í»§¶ËÉϼìË÷´Ë·Ç·²µÄÁ÷¡£ÔÚ SQL Server 2005 ÖУ¬SELECT ... FOR XML Óï¾äͨ¹ýÐí¶à·½Ê½µÃµ½ÁËÔöÇ¿¡£ÕâÀï½öÌáÉÙÊý¼¸ÖÖ£º
1.
ÔÚ´ó¶àÊýÇé¿öÏ£¬µ±ÄúÐèÒª SQL Server 2000 ÖÐµÄ FOR XML EXPLICIT ģʽʱ£¬ÓÐÒ»ÖÖеġ¢±ãÓÚʹÓÃµÄ FOR XML PATH ģʽ¡£
2.
ʹÓà TYPE Ö¸Á³ýÁËÉú³ÉÁ÷Ö®Í⣬Äú»¹¿ÉÒÔÉú³É XML Êý¾ÝÀàÐÍÁС£
3.
¿ÉÒÔǶÌ× FOR XML ±í´ïʽ¡£
4.
SELECT ... FOR XML ¿ÉÒÔʹÓà ROOT Ö¸ÁîÉú³É XML ÎĵµÒÔ¼° XML Ƭ¶Î¡£
5.
Äú¿ÉÒÔ½«±ê×¼µÄ XSD ¼Ü¹¹Ô¤ÏÈ¹ÒÆðµ½Á÷¡£
ͨ¹ýÒýÓà ADO.NET 2.0 ÖеĹØÏµ datatype ö¾Ù£¬Äú¿ÉÒÔ³õ²½Á˽⵽ XML ÊÇÒ»ÖÖÒ»Á÷µÄ¹ØÏµÊý¾Ý¿âÀàÐÍ¡£System.Data.DbType ºÍ System.Data.SqlDbType ·Ö±ð°üº¬ DbType.Xml ºÍ SqlDbType.Xml µÄ¸½¼ÓÖµ¡£ÔÚ System.Data.SqlTypes ÃüÃû¿Õ¼äÖÐÒ²ÓÐÒ»¸öеÄÀ࣬ËüÊÇ SqlXml¡£Õâ¸öÀà³äµ± XML ÀàÐÍÖµµÄ XmlReader ʵÀý¹¤³§¡£ÎÒ½«Í¨¹ýһЩ¼òµ¥µÄ´úÂë½øÐÐչʾ¡£¼ÙÉèÎÒÓÐÒ»·Ý SQL Server ±í£¬ÈçÏÂËùʾ£º
CREATE TABLE xmltab ( id INT IDENTITY PRIMARY KEY, xmlcol XML)
ÎÒ¿ÉÒÔʹÓÃÒÔÏ ADO.NET 2.0 ´úÂëÔÚ¿Í»§¶ËÉÏ·ÃÎÊ´Ë±í¡£
using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using System.Xml;void GetXMLColumn {// "Generic Coding..." article for shows how to// get a connection string from a config filestring s = GetConnectStringFromConfigFile("xmldb");using (SqlConnection conn = new SqlConnection(s))using (SqlCommand cmd = new SqlCommand( "select * from xmltab", conn)) { conn.Open(); SqlDataReader rdr = cmd.ExecuteReader(); DataTable t = rdr.GetSchemaTable(); while (rdr.Read()) { SqlXml sx = rdr.GetSqlXml(1); XmlReader xr = sx.CreateReader(); xr.Read(); Console.WriteLine(xr.ReadOuterXml()); } }}ÎÒä¯ÀÀ GetSchemaTable ²úÉúµÄ DataTable ʱ·µ»ØµÄÁÐÔªÊý¾ÝÕýÈ·µØ±êʶÁËÁУº
ProviderType: 25 (25 = XML)ProviderSpecificDataType: System.Data.SqlTypes.SqlXmlDataType: System.Xml.XmlReaderDataTypeName:
ÕýÈçÈÎºÎÆäËû¹¹½¨µ½ SQL Server ÖеÄÀàÐÍÒ»Ñù¡£Çë×¢ÖØ£¬´ËÁеġ°.NET ÀàÐÍ¡±ÊÇ XmlReader£¬¶ÔÓÚ .NET ¶øÑÔ£¬Ëü¾ÍÏñÈκδÓÎļþ¼ÓÔØ»òÓà XmlDocument Àà²úÉúµÄ XML Ò»Ñù¡£ÔÚ ADO.NET 2.0 ÖеĴ洢¹ý³Ì»ò²ÎÊý»¯Óï¾äÖн« XML Êý¾ÝÀàÐÍÁÐÓÃ×÷²ÎÊýͬÑù¼òµ¥£º
using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using System.Xml;void AddARow {// get a connection string from a config filestring s = GetConnectStringFromConfigFile("xmldb");using (SqlConnection conn = new SqlConnection(s))using (SqlCommand cmd = new SqlCommand( "insert xmltab(xmlcol) VALUES(@x)", conn)) { conn.Open(); cmd.Parameters.Add("@x", SqlDbType.Xml); // connect the parameter value to a file XmlReader xr = XmlReader.Create("somexml.xml"); cmd.Parameters[0].Value = new SqlXml(xr); int i = cmd.ExecuteNonQuery(); }}¹²5Ò³: 1 [2] [3] [4] [5] ÏÂÒ»Ò³ ¡¾ÄÚÈݵ¼º½¡¿
Ïà¹ØÐÅÏ¢
- Microsoft SQL Server 2005 ÖÐµÄ XML
- ʹÓà SQL Server 2005 ÖÐµÄ SQLCLR ´¦
- SQL Server 2005 Service Broker ³õ̽(
- SQL Server 2005 ²úÆ·ÏßµÄÀ©Õ¹
- SQL Server 2005¶¨ÓÚ2005Äêµ×·¢²¼
- Analysis Services 2005ÖÐÊý¾ÝÍêÕûÐÔ´¦
- ÔÚSQL Server 2005ÖÐʵÏÖËØÊý¼ÆËã
- ÔÚSQL Server 2005Öвéѯ±í½á¹¹¼°Ë÷Òý
- SQL Server 2005: Êý¾Ý¿â¾µÏó¸ú×Ù±ê¼Ç
- ʹÓÃMicrosoft SQL Server 2005 ¹¹½¨¸ü
- ±£»¤ SQL Server 2005 Express Edition
- SQL Server 2005 ÖеÄÉÌÎñÖÇÄܺÍÊý¾Ý²Ö
Ó²¼þ¹ÊÕÏרÌâ
¸ü¶àÈí¼þ¹ÊÕÏάÐÞ
¸ü¶à- photoshop·ÐÂÀÏÕÕÆ¬¡ª¾ÉÕÕ»»ÐÂÑÕ
- ÖÕ¼«½âÂë2008´º½Ú°æ·Å1080reµÄÎÊÌâ
- ¶àÁËÄÄЩÐÂÍæÒ⣿MSN 9.0BetaÌåÑé
- ÓÃWord2007ÖÆ×÷´º½ÚϲÇìÓÃÆ·
- ÓÃPhotoshopÒ»ÃëÖÓ´òÔìÒÕÊõÕÕÆ¬Ð§¹û
- »Ö¸´Ò»¸öÒÑÆÆ»µµÄWordÎĵµ
- photoshop·þ×°ÃæÁÏЧ¹û_Á½ÖÖ¿Û×Ó
- ¡¾ÏÂÔØ¡¿CPU-Z 1.44.1 £¨02/16/2008£©
- WordÖÐÓÃÁíÀà·½·¨¸´ÖÆÎı¾
- ÀϱøÐ´«£¬¿ì³µ2.0 Beta 4ÌåÑ鱨¸æ
¾É°æµçÄÔ¹ÊÕÏÍø
ÔĶÁÅÅÐÐ
- ½«AccessÒÆÖ²µ½SQL Server
- ΢Èí´òÔìManaged SQL ServerÈ«ÇòÍÆ¹ã¼Æ
- ±àд°²È«µÄÀ©Õ¹´æ´¢¹ý³Ì
- ±£»¤SQL Server£ºÎª°²È«ÐÔ¶ø°²×°
- ÈçºÎ½â¾öSQL ServerÕ¼ÓÃÄÚ´æµÄÎÊÌâ
- ͨ¹ýÈÕÖ¾»Ö¸´MS SQLÊý¾Ý°¸Àý
- SQL ServerµÄÐÂÎļþ´æ´¢»úÖÆ
- ÓÃSQL PLUS¹¹½¨excel»òhtmlÊä³ö
- SQL Server²¹¶¡°²×°³£¼ûÎÊÌâ
- SQL Server 2005ÐÔÄܲâÊÔÖ®CPUƪ£¨±àÒë
- SQL SERVERÖÐÖ±½ÓÑ»·Ð´ÈëÊý¾Ý
- SQL Server 2005ÓëDB2 8.2Ö®¶Ô±È(1)
