0

ビュー定義の次の部分があります

SELECT
   codedValue.value('Code[1]','nvarchar(max)') AS "Code",
   codedValue.value('Name[1]', 'nvarchar(max)') AS "Value"
  FROM GDB_ITEMS AS items 
  CROSS APPLY items.Definition.nodes
   ('/GPCodedValueDomain2/CodedValues/CodedValue') AS CodedValues(codedValue)
  WHERE items.Name = 'tlu_Loss_list' 

これは、アプリケーションで生成された xlm 列に対して「コード」と「値」を照会します。このコンテキストでは、xml 列のコードと値を読み取り専用にすることができます。

理想的には、ビューを更新可能にして、ユーザーが独自のコードと値を入力できるようにしたいと考えています。これは、この xml 列に複製されます。これは可能ですか?

xml 列とテーブルの関連部分は次のとおりです。

xml 列の既存のデータ:

<GPCodedValueDomain2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:typens="http://www.esri.com/schemas/ArcGIS/10.0" xsi:type="typens:GPCodedValueDomain2">
  <DomainName>tlu_Loss_List</DomainName>
  <FieldType>esriFieldTypeString</FieldType>
  <MergePolicy>esriMPTDefaultValue</MergePolicy>
  <SplitPolicy>esriSPTDefaultValue</SplitPolicy>
  <Description>Loss_Reason</Description>
  <Owner>DBO</Owner>
  <CodedValues xsi:type="typens:ArrayOfCodedValue">
    <CodedValue xsi:type="typens:CodedValue">
      <Name>Abandoned</Name>
      <Code xsi:type="xs:string">AB</Code>
    </CodedValue>
    <CodedValue xsi:type="typens:CodedValue">
      <Name>Coyote</Name>
      <Code xsi:type="xs:string">CO</Code>
    </CodedValue>
  </CodedValues>
</GPCodedValueDomain2>

XML を保持するテーブル:

CREATE TABLE [dbo].[GDB_ITEMS](
    [ObjectID] [int] NOT NULL,
    [UUID] [uniqueidentifier] NOT NULL,
    [Type] [uniqueidentifier] NOT NULL,
    [Name] [nvarchar](226) NULL,
    [PhysicalName] [nvarchar](226) NULL,
    [Path] [nvarchar](512) NULL,
    [Url] [nvarchar](255) NULL,
    [Properties] [int] NULL,
    [Defaults] [varbinary](max) NULL,
    [DatasetSubtype1] [int] NULL,
    [DatasetSubtype2] [int] NULL,
    [DatasetInfo1] [nvarchar](255) NULL,
    [DatasetInfo2] [nvarchar](255) NULL,
    [Definition] [xml] NULL,
    [Documentation] [xml] NULL,
    [ItemInfo] [xml] NULL,
    [Shape] [geometry])
4

1 に答える 1

0

「代わりに」トリガーを使用してこれを実行できる場合があります。 INSTEAD OF トリガーの設計

XML の変更例については、modify() メソッドおよびXML データ変更言語を参照してください。

于 2012-09-09T17:49:11.223 に答える