3

Microsoft SQL Server 2008では、データ型intのtype_idとデータ型XMLのxml_info列を持つSQLテーブルに値を挿入しようとしています。私は次のクエリを使用しています:

INSERT INTO tbl_applied_devices ([type_id],[xml_info])
VALUES (1,'<Profile ID=99><Server><ID>BC4A18CA-AFB5-4268-BDA9-C990DAFE7783</ID>  <Name>localhost</Name><Services></Services></Server></Profile>')

しかし、私はこのエラーを受け取り続けます:

メッセージ9413、レベル16、状態1、4行目
のXML解析:1行目、文字13、文字列リテラルが必要でした

私は間違って何をしていますか?

編集: エラーの原因はxml要素のID属性であり<Profile ID=99>、エラーの原因であると思われます。属性を使用してxmlを正しく挿入するにはどうすればよいですか?どういうわけかキャラクターの1人を脱出する必要がありますか?

4

2 に答える 2

10

XMLドキュメントは本質的にテキストです。これはWebページのHTMLではないため、すべての属性値を引用符で囲む必要があります(一重または二重)。

INSERT INTO tbl_applied_devices ([type_id],[xml_info])
VALUES (1,'<Profile ID="99"><Server><ID>BC4A18CA-AFB5-4268-BDA9-C990DAFE7783</ID>  <Name>localhost</Name><Services></Services></Server></Profile>')

XML 1.0仕様を解析するのは非常に困難ですが、これが.Net 4.5用のMicrosoftバージョンであり、SQLServerXMLにも同様に関連しています。

于 2012-11-04T23:21:51.330 に答える
3

属性、IDは属性であり、引用符で囲む必要があります。ID="99"をお試しください

于 2012-11-04T23:20:32.830 に答える