;
帖子
3919 
精华
积分
11710 
鱼币
0 ¥ 
来自
大连 
在线时间
1858 小时 
注册时间
2007-6-11 
最后登录
2009-10-20 

贴图大师勋章新人进步勋章宣传大使勋章论坛元老勋章

3
发表于 2009-1-5 19:48 | 只看该作者
SQL Server 2000 XML涔嬩竷绉嶅叺鍣 - 缂栫▼搴 - Powered by SupeSite

浣犵殑浣嶇疆锛缂栫▼搴 >> 璧勮 >> 鏁版嵁搴撶鐞 >> MSSQL >> 璇︾粏鍐呭 鍦ㄧ嚎鎶曠ǹ

SQL Server 2000 XML涔嬩竷绉嶅叺鍣

鍙戝竷: 2008-6-30 23:27 |  浣滆: admin |   鏌ョ湅: 8娆

SQL Server 2000 XML涔嬩竷绉嶅叺鍣

鐑 鑽

銆愬瓧浣擄細灏 澶с

SQL Server 2000 XML涔嬩竷绉嶅叺鍣

浣滆咃細- 鏂囩珷鏉ユ簮锛- 鐐瑰嚮鏁帮細5162 鏇存柊鏃堕棿锛2006-4-20

XML锛屽凡鎴愪负杩戞潵鏈鐑棬鐨刉eb鎶鏈紝瀹冩槸SQL Server 2000涓殑閲嶈閮ㄥ垎銆傛湰鏂囧皢缁煎悎涓冩潯SQL Server 2000涓渶閲嶈鐨刋ML缁煎悎鐗规х粍鎴怷ML涔嬩竷绉嶅叺鍣ㄣ

銆銆鍏靛櫒涔嬩竴锛欶OR XML

銆銆鍦⊿QL Server 2000涓紝鏍囧噯鐨凾-SQL SELECT璇彞鍖呮嫭FOR XML瀛愬彞锛屽畠浠ML鏂囨。褰㈠紡杩斿洖涓涓煡璇㈢粨鏋溿傛柊鐨凢OR XML瀛愬彞鏈変笁绉嶆ā寮RAW锛孉UTO锛屽拰EXPLICIT锛屾瘡涓兘鑳藉XML鏂囨。鏍煎紡鎻愪緵闄勫姞鏍囧噯鐨勬帶鍒躲

銆銆涓嬮潰棣栧厛浠嬬粛FOR XML鐨勪娇鐢ㄦ柟娉曘

銆銆涓轰簡浠嶴QL Server鎻愬彇XML鏍煎紡鐨勬暟鎹紝T-SQL涓姞鍏ヤ簡涓涓狥OR XML鍛戒护銆傚湪鏌ヨ鍛戒护涓娇鐢‵OR XML鍛戒护浣垮緱鏌ヨ缁撴灉浠ML鏍煎紡鍑虹幇銆侳OR XML鍛戒护鏈変笁绉嶆ā寮忥細RAW锛孉UTO鍜孍XPLICIT銆傚浘1鎵鏄剧ず鐨凷QL鍛戒护璁块棶SQL Server鎻愪緵鐨凱ubs绀轰緥鏁版嵁搴撱傛湁鍏砅ubs鏁版嵁搴撶殑鏇村淇℃伅锛岃鍙傝MSDN璇存槑銆傚鏋滄垜浠緷娆℃寚瀹氳SQL鍛戒护鐨勬ā寮忎负涓夌鍏佽鐨勬ā寮忎箣涓锛屽氨鍙互寰楀埌鍚勭妯″紡鎵鏀寔鐨勪笉鍚孹ML杈撳嚭銆

銆愬浘1 銆

SELECT store.stor_id as Id, stor_name as Name,

sale.ord_num as OrderNo,sale.qty as Qty

FROM stores store inner join

sales sale on store.stor_id = sale.stor_id

ORDER BY stor_name

FOR XML 锛滄ā寮忥紴

銆銆璇ユ煡璇㈠懡浠ゆ墍鐢熸垚鐨勭粨鏋滃寘鍚墍鏈夐攢鍞褰曞強鍏跺搴旂殑鍟嗗簵锛岀粨鏋滀互鍟嗗簵鍚嶇О鐨勫瓧姣嶅崌搴忔帓鍒椼傛煡璇㈢殑鏈鍚庡姞涓婁簡FOR XML鍛戒护浠ュ強鍏蜂綋鐨勬ā寮忥紝姣斿FOR XML RAW銆

銆銆鐞嗘兂鎯呭喌涓嬶紝SQL鍛戒护鎵鐢熸垚鐨刋ML鏂囨。搴斿叿鏈夊涓嬬粨鏋勶細

锛淪tores锛

锛淪tore Id=&single;&single; Name=&single;&single;锛

锛/Sale OrderNo=&single;&single; Qty=&single;&single;锛

锛/Store锛

锛/Stores锛

銆銆涓嬮潰鎴戜滑鏉ョ湅鐪嬪叿浣撶殑澶勭悊鏂规硶銆

銆銆RAW妯″紡

銆銆涓嬮潰鏄寚瀹歊AW妯″紡鏃剁粨鏋淴ML鏂囨。鐨勪竴涓墖鏂

銆銆鏌ヨ缁撴灉闆嗕腑姣忎竴涓褰曞寘鍚敮涓鐨勫厓绱狅紲row锛炪傜敱浜庢垜浠棤娉曟帶鍒跺厓绱犲悕瀛楀拰鏂囨。缁撴瀯锛屽洜姝よ繖绉嶆ā寮忎笉鏄緢鏈夌敤銆俁AW妯″紡鎵鐢熸垚鐨勬枃妗g粨鏋勪笌鎴戜滑鎵甯屾湜鐨勪笉绗︼紝鑰屼笖瀹冪殑鐢ㄩ斾篃闈炲父鏈夐檺銆

銆銆AUTO妯″紡

銆銆涓嬮潰鏄寚瀹欰UTO妯″紡鏃剁粨鏋滄枃妗g殑涓涓墖鏂細

銆銆鍙互鐪嬪埌锛岋紲Stroe锛炲拰锛淪ale锛炰袱涓厓绱犳槸鐖-瀛愬叧绯伙紝褰㈡垚浜嗘垜浠墍甯屾湜鐨勫眰娆$粨鏋勩傝繖绉嶈妭鐐瑰叧绯荤敱鏌ヨ涓〃鐨勫0鏄庢搴忓喅瀹氾紝鍚庡0鏄庣殑琛ㄦ垚涓哄墠澹版槑琛ㄧ殑瀛╁瓙銆

銆銆鍐嶅弬鑰冨浘1锛屾垜浠彲浠ョ湅鍑烘煡璇㈠懡浠ゆ墍鎸囧畾鐨勫埆鍚嶅喅瀹氫簡XML鏂囨。涓殑鍚嶅瓧銆傛牴鎹繖涓鐐癸紝鎴戜滑鍙互鎺у埗XML鏂囨。鍏冪礌銆佸睘鎬х殑鍚嶅瓧锛屼娇寰楄繖浜涘悕瀛楃鍚堟垜浠墍瑕佹眰鐨勫懡鍚嶆儻渚嬨

銆銆鍙AUTO妯″紡鑳藉鍒涘缓鍑烘垜浠墍闇瑕佺殑XML鏂囨。銆備笉杩囧畠瀛樺湪浠ヤ笅缂虹偣锛

銆銆铏界劧鍙互寰楀埌灞傛缁撴瀯锛屼絾杩欑灞傛缁撴瀯鏄嚎鎬х殑锛屽嵆姣忎釜鐖惰妭鐐瑰彧鑳芥湁涓涓瓙鑺傜偣锛屽弽涔嬩害鐒躲

銆銆閫氳繃鍒悕鎸囧畾鍏冪礌鍚嶅瓧涓嶅お鏂逛究锛岃屼笖鏈夋椂鍊欎細褰卞搷鏌ヨ鍛戒护鏈韩鐨勫彲璇绘с

銆銆鏃犳硶鍦ㄦ枃妗d腑鍚屾椂鐢熸垚鍏冪礌鍜屽睘鎬с傝涔堝叏閮ㄦ槸鍏冪礌锛堥氳繃ELEMENTS鍏抽敭璇嶆寚瀹氾級锛岃涔堝叏閮ㄦ槸灞炴э紙榛樿锛夈 EXPLICIT妯″紡瑙e喅浜嗕笂杩颁笉瓒炽

銆EXPLICIT妯″紡

銆銆EXPLICIT妯″紡姣旇緝澶嶆潅锛屾垜浠皢鐢ㄥ彟澶栦竴绉嶆柟娉曟潵琛ㄨ揪鍥1鎵鏄剧ず鐨勬煡璇€傝繖绉嶆柟娉曚娇寰楁垜浠兘澶熷畬鍏ㄥ湴鎺у埗鏌ヨ鎵鐢熸垚鐨刋ML鏂囨。銆傞鍏堟垜浠皢浠嬬粛濡備綍鏀圭敤EXPLICIT妯″紡缂栧啓鍥1鎵鏄剧ず鐨勬煡璇紝鐒跺悗鐪嬬湅杩欑鏂规硶濡備綍璧嬩簣鎴戜滑杩滆繙瓒呰繃AUTO妯″紡鐨勮兘鍔涖

銆銆涓嬮潰鏄浘1鏌ヨ鐢‥XPLICIT妯″紡琛ㄨ揪鐨勪唬鐮侊細

銆愬浘2 銆

--鍟嗗簵鏁版嵁

SELECT 1 as Tag,

NULL as Parent,

s.stor_id as [store!1!Id],

s.stor_name as [store!1!Name],

NULL as[sale!2!OrderNo],

NULL as [sale!2!Qty]

FROM stores s

UNION ALL

-- 閿鍞暟鎹

SELECT 2, 1,

s.stor_id,

s.stor_name,

sa.ord_num,

sa.qty

FROM stores s, sales sa

WHERE s.stor_id = sa.stor_id

ORDER BY [store!1!name]

FOR XML EXPLICIT

銆銆杩欎釜鏌ヨ鍒濈湅璧锋潵鏈夌偣澶嶆潅锛屽叾瀹炲畠鍙槸鎶婁笉鍚岀殑鏁版嵁闆嗭紙鍗宠繖閲岀殑Store鍜孲ale锛夊垎瑙e埌浜嗙嫭绔嬬殑SELECT璇彞閲岋紝鐒跺悗鍐嶇敤UNION ALL鎿嶄綔绗﹁繛缁撴垚涓涓煡璇€

銆銆鎴戜滑涔嬫墍浠ヨ鎶婃煡璇㈠啓鎴愪笂闈㈢殑褰㈠紡锛屾槸涓轰簡璁╂煡璇㈢粨鏋滀笉浠呭寘鍚玐ML鏂囨。鎵鎻忚堪鐨勬暟鎹紝鑰屼笖杩樺寘鍚弿杩癤ML鏂囨。缁撴瀯鐨勫厓鏁版嵁銆備笂杩版煡璇㈡墍鐢熸垚鐨勮〃绉颁负Universal琛紝sqlxml.dll鐢熸垚XML鏂囨。鏃堕渶瑕佽繖绉嶆牸寮忋俇niversal琛ㄥ浜庣紪鍐欎唬鐮佺殑浜烘潵璇存槸閫忔槑鐨勶紝浣嗕簡瑙h繖涓〃杩樻槸寰堟湁鎰忎箟鐨勶紝瀹冨皢鏈夊姪浜庝唬鐮佺殑寮鍙戝拰璋冭瘯銆備笅闈㈡槸Universal琛ㄧ殑涓涓緥瀛愶細

[8] [9] [10] [11] [12] [13] [14] [15] [16]

鎵撳嵃 | 鏀惰棌姝ら〉 |  鎺ㄨ崘缁欏ソ鍙 | 涓炬姤
涓婁竴绡 涓嬩竴绡
 

璇勫垎锛0

鍙戣〃璇勮
鏌ョ湅鍏ㄩ儴鍥炲銆愬凡鏈0浣嶇綉鍙嬪彂琛ㄤ簡鐪嬫硶銆