ได้รับองค์ประกอบที่กำหนดไว้ภายในคอลเลกชัน XML Schema ดังกล่าว:
<xsd:element name="xid">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="32" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
คุณจะอัพเดทองค์ประกอบโดยใช้ XQuery อย่างไร
องค์ประกอบที่พบในnamespace nsในคอลเลกชันคี ฉันพยายามอัปเดตองค์ประกอบข้อความค้นหาด้านล่าง:
update cm.item
set data.modify(
'declare namespace ns="http://www.anon.com";
replace value of (/ns:*/ns:xid)[1] with "X00011793" cast as element(ns{http://www.anon.com}:xid,#anonymous) ?')
where id = 11793
แต่สิ่งนี้สร้างข้อผิดพลาดต่อไปนี้:
ข่าวสารเกี่ยวกับ 9301, ระดับ 16, สถานะ 1, บรรทัดที่ 2 XQuery [cm.item.data.modify ()]: ในเซิร์ฟเวอร์รุ่นนี้ไม่สามารถใช้ 'cast as' กรุณาใช้ 'cast as?' วากยสัมพันธ์
หากฉันลบตัวละครทิ้งทั้งหมดและใช้แบบสอบถามนี้:
update cm.item
set data.modify(
'declare namespace ns="http://www.anon.com";
replace value of (/ns:*/ns:xid)[1] with "X00011793"')
where id = 11793
ฉันได้รับข้อผิดพลาดนี้:
ข่าวสารเกี่ยวกับ 2247 ระดับ 16 สถานะ 1 บรรทัด 2 XQuery [cm.item.data.modify ()]: ค่าเป็นประเภท "xs: string" ซึ่งไม่ใช่ประเภทย่อยของประเภทที่คาดหวัง "<anonymous>"
ถ้าฉันออกแบบสอบถามนี้:
update cm.item
set data.modify(
'declare namespace ns="http://www.anon.com/";
replace value of (/ns:*/ns:xid/text())[1] with "X00011793"')
where id = 11793
ฉันได้รับข้อผิดพลาดนี้:
ข่าวสารเกี่ยวกับ 9312, ระดับ 16, สถานะ 1, บรรทัด 2 XQuery [cm.item.data.modify ()]: 'text ()' ไม่ได้รับการสนับสนุนในการพิมพ์อย่างง่ายหรือ ' http://www.w3.org/2001/XMLSchema #anyType 'พบองค์ประกอบ' (องค์ประกอบ (ns { http://www.anon.com/ }: xid, # anonymous)?) * '
ฉันกำลังกำหนดเป้าหมายเป็น SQL Server 2008 R2
ขอบคุณ!