´Ó SQL Server 2005 Öд¦Àí XML(1)

¡¶´Ó SQL Server 2005 Öд¦Àí XML(1)¡·ÕªÒª£º Ò»¡¢¼ò½é Microsoft SQL Server 2005 ÖеÄÖØ´ó¸ü¸ÄÖ®Ò»Êǰüº¬ÁË XML Êý¾ÝÀàÐÍ¡£´ËÊý¾ÝÀàÐÍÊǵÚÒ»ÀàÀàÐÍ£¬¾ÍÏñ INT »ò VARCHAR Ò»Ñù£¬¶øÇÒ SQL Server 2005 ´ðӦʹÓÃһϵÁÐ XML ÌØ¶¨µÄº¯Êý¶Ô´ËÊ¡­
Ò»¡¢¼ò½é

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] ÏÂÒ»Ò³ ¡¾ÄÚÈݵ¼º½¡¿
ÄãµÄλÖ㺵çÄÔ¹ÊÕÏÍø >> Êý¾Ý¿â >> SQL Server >> ´Ó SQL Server 2005 Öд¦Àí XML(1)