ビュー定義の次の部分があります
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])