Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

SqlServer²Ù×÷XMLѧϰ


ÔÚ SQLServer2005 ÖжԠXML µÄ´¦Àí¹¦ÄÜÏÔÈ»ÔöÇ¿Á˺ܶ࣬ÌṩÁË query(),value(),exist(),modify(),nodes() µÈº¯Êý¡£
¹ØÓÚ xml £¬ÄÑÒÔÀí½âµÄ²»ÊÇ SQLServer ÌṩµÄº¯Êý£¬¶øÊǶԠxml ±¾ÉíµÄÀí½â£¬¿´Ëƺܼòµ¥µÄÎļþ¸ñʽ£¬´¦ÀíÆðÀ´È´ÊǷdz£À§Äѵġ£±¾ÎÄÖ»Êdzõ̽һ϶øÒÑ¡£
Ïê¼û SQLServer Áª»ú°ïÖú£º
Ö÷Ìâ
˵Ã÷
query() ·½·¨£¨ xml Êý¾ÝÀàÐÍ£©
´Ë·½·¨ÓÃÓÚ¶Ô XML ÊµÀý½øÐвéѯ¡£
value() ·½·¨£¨ xml Êý¾ÝÀàÐÍ£©
´Ë·½·¨ÓÃÓÚ´Ó XML ÊµÀý¼ìË÷ SQL ÀàÐ͵ÄÖµ¡£
exist() ·½·¨£¨ xml Êý¾ÝÀàÐÍ£©
´Ë·½·¨ÓÃÓÚÈ·¶¨²éѯÊÇ·ñ·µ»Ø·Ç¿Õ½á¹û¡£
modify() ·½·¨£¨ xml Êý¾ÝÀàÐÍ£©
´Ë·½·¨ÓÃÓÚÖ¸¶¨ XML DML Óï¾äÒÔÖ´ÐиüС£
nodes() ·½·¨£¨ xml Êý¾ÝÀàÐÍ£©
´Ë·½·¨ÓÃÓÚ½« XML ²ð·Ö³É¶àÐÐÒÔ½« XML ÎĵµµÄ×é³É²¿·Ö´«²¥µ½Ðм¯ÖС£
 
CREATE TABLE VisioXML
(
ID INT,
Doc XML
);
GO
INSERT INTO VisioXML(ID,Doc)
SELECT 4,* from OPENROWSET(BULK 'c:\abc.xml',SINGLE_BLOB) AS x;
--SELECT * from VisioXML WHERE ID=4
SELECT
--Doc.value('(/ROOT/ROW[1]/ID/text())[1]','int') RootRowID1, -- µÚÒ»ÐÐ ID µÄÖµ£¬²¢ÇÒת»»Îª int ÀàÐÍ
--Doc.value('(/ROOT/ROW[2]/ID/text())[1]','int') RootRowID2, -- µÚ¶þÐÐ ID µÄÖµ£¬²¢ÇÒת»»Îª int ÀàÐÍ
--Doc.value('(/ROOT/ROW[1]/NAME/text())[1]','varchar(20)') RootRowNAME1, -- µÚÒ»ÐÐ NAME µÄÖµ£¬²¢ÇÒת»»Îª VARCHAR ÀàÐÍ
--Doc.value('(/ROOT/ROW[1]/NAME/@SEX)[1]','varchar(20)') RootRowNAME1SEX, -- µÚÒ»ÐÐ NAME ÖÐ SEX ÊôÐÔµÄÖµ£¬²¢ÇÒת»»Îª VARCHAR ÀàÐÍ
Doc.query('/ROOT') Root, --ROOT ϵÄËùÓÐ XML ÄÚÈÝ£¬ÀàÐÍΪ XML
--Doc.query('/ROOT/ROW[1]') RootRow1, --ROOT ϵÚÒ»ÐÐËùÓÐµÄ XML ÄÚÈÝ£¬ÀàÐÍΪ XML
Doc.query('/ROOT/ROW[2]') RootRow2 --ROOT ϵڶþÐÐËùÓÐµÄ XML ÄÚÈÝ£¬ÀàÐÍΪ XML
from VisioXML
WHERE ID=4
SELECT
Doc.exist('/ROOT/ROW[1]/NAME[(@SEX cast as xs:string?) = xs:string("MALE")]') Row1EQStringMale,
Doc.exist('/ROOT/ROW[1]/NAME[(@SEX cast as xs:string?) = "MALE"]') Row1EQ


Ïà¹ØÎĵµ£º

¶ÁÈ¡xml²¢°ó¶¨gridview

<?xml version="1.0" encoding="utf-8" ?>
<ExamPaper Name="ÎҵĵÚÒ»ÆÚÊÔ¾í" BeginDate="2009-3-4" EndDate="2009-12-30" Scort="150" UserTime="100" FK_UserType="1" FK_AdminUser="1">
<Question PKID= ......

SqlServer ÊÓͼË÷Òý

ÔÚÊÓͼÉÏ´´½¨Ë÷ÒýµÄÁíÒ»¸öºÃ´¦ÊÇ£º²éѯÓÅ»¯Æ÷¿ªÊ¼ÔÚ²éѯÖÐʹÓÃÊÓͼË÷Òý
£¬
¶ø²»ÊÇÖ±½ÓÔÚ from
×Ó¾äÖÐÃüÁîÊÓͼ¡£ÕâÑùÒ»À´£¬¿É´ÓË÷ÒýÊÓͼ¼ìË÷Êý¾Ý¶øÎÞÐèÖØÐ±àÂ룬ÓÉ´Ë´øÀ´µÄ¸ßЧÂÊҲʹÏÖÓвéѯ»ñÒæ¡£ÔÚÊÓͼÉÏ´´½¨µÄµÚÒ»¸öË÷Òý±ØÐëÊÇΨһ¾Û¼¯Ë÷Òý¡£ÔÚ´´
½¨Î¨Ò»¾Û¼¯Ë÷Òýºó£¬¿É´´½¨ÆäËü·Ç¾Û¼¯Ë÷Òý¡£ÊÓͼÉϵÄË÷ÒýÃüÃû¹æÔòÓë± ......

½«±í»ò²éѯ´æ´¢Îª±ê×¼µÄXMLÎļþ

/*--´æÎªXML
 ½«±í/²éѯ´æ´¢Îª±ê×¼µÄXMLÎļþ
--*/
/*--µ÷ÓÃʾÀý
 --ÓÃSQLÓÃwinowsÉí·ÝÑéÖ¤µÄÇé¿ö
 exec p_savexml @sql='µØÇø×ÊÁÏ',@fname='c:\µØÇø×ÊÁÏ.xml'
 --ÓÃÖ¸¶¨µÄÓû§
 exec p_savexml @sql='µØÇø×ÊÁÏ',@fname='c:\µØÇø×ÊÁÏ.xml',@userid='sa'
--*/
if exists (select * from db ......

ÔÚSQL ServerÖÐÓÃXQuery·Ö½âXMLÊý¾Ý

¡¡¡¡±¾ÎÄÌÖÂÛSQL Server 2005µÄй¦ÄÜ£¬ËüÔÊÐíÄ㽫XMLÊý¾Ý·Ö½âµ½¹ØÏµ¸ñʽÖУ¬¶ø²»±ØºÄÓÃÌ«¶àÄÚ´æ¡£
¡¡¡¡±¾ÎÄÌÖÂÛSQL Server 2005µÄй¦ÄÜ£¬ËüÔÊÐíÄ㽫XMLÊý¾Ý·Ö½âµ½¹ØÏµ¸ñʽÖУ¬¶ø²»±ØºÄÓÃÌ«¶àÄÚ´æ¡£
¡¡¡¡ÔÚ¾ÙÀý˵Ã÷ÈçºÎ·Ö½âÉÏһƪÎÄÕÂÖеÄÊý¾Ýʱ£¬ÎÒÃÇÊ×ÏÈÁ˽âÒ»ÏÂXQueryºÍËüÔÚSQL Server 2005ÖÐΪ¿ª·¢ÕßÌṩµÄ¹¦ÄÜ¡£
¡ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ