DECLARE @DOMAIN_NAME NVARCHAR(MAX); SET @DOMAIN_NAME = 'Material'; DECLARE @CLASS_DEFS TABLE ( Name nvarchar(max), Definition XML ) INSERT INTO @CLASS_DEFS SELECT GDB_ITEMS.Name, GDB_ITEMS.Definition FROM -- Get the domain item's UUID. ((SELECT GDB_ITEMS.UUID AS UUID FROM GDB_ITEMS INNER JOIN GDB_ITEMTYPES ON GDB_ITEMS.Type = GDB_ITEMTYPES.UUID WHERE GDB_ITEMS.Name = @DOMAIN_NAME AND GDB_ITEMTYPES.Name IN ('Coded Value Domain', 'Range Domain')) AS Domain -- Find the relationships with the domain as the DestinationID. INNER JOIN GDB_ITEMRELATIONSHIPS ON Domain.UUID = GDB_ITEMRELATIONSHIPS.DestID) -- Find the names of the origin items in the relationships. INNER JOIN GDB_ITEMS ON GDB_ITEMRELATIONSHIPS.OriginID = GDB_ITEMS.UUID; -- Extract the field definitions. SELECT ClassDefs.Name AS "Class Name", fieldDef.value('Name[1]', 'nvarchar(max)') AS "Field Name", NULL AS "Subtype Name" FROM @CLASS_DEFS AS ClassDefs CROSS APPLY Definition.nodes('/*/GPFieldInfoExs/GPFieldInfoEx') AS FieldDefs(fieldDef) WHERE fieldDef.value('DomainName[1]', 'nvarchar(max)') = @DOMAIN_NAME UNION SELECT ClassDefs.Name AS "Class Name", fieldDef.value('FieldName[1]', 'nvarchar(max)') AS "Field Name", fieldDef.value('(../../SubtypeName)[1]', 'nvarchar(max)') AS "Subtype Name" FROM @CLASS_DEFS AS ClassDefs CROSS APPLY Definition.nodes('/*/Subtypes/Subtype/FieldInfos/SubtypeFieldInfo') AS FieldDefs(fieldDef) WHERE fieldDef.value('DomainName[1]', 'nvarchar(max)') = @DOMAIN_NAME
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.