Heb je ooit deze Fout: Het geselecteerde veld is een verplicht veld en kan niet worden verwijderd<\/A> gekregen? Ik krab mijn hoofd en vraag me af hoe ik "Field IsRequired" heb gecontroleerd. De officiële oplossing is om de feature class te exporteren naar een andere feature class en wat veldmapping magie toe te passen, dan de originele te verwijderen, de gewijzigde te importeren......niet dus. Zie je, al mijn feature classes zijn ingebakken in een enterprise geodatabase met allerlei afhankelijkheden en relaties (dat is eigenlijk het punt van een enterprise geodatabase, toch?). <\/P><\/P>Er is een snellere en eenvoudigere manier om dit probleem op te lossen. Ik besteed veel tijd aan het bewerken van metadata in de native XML (sneller, en ik kan dingen makkelijker automatiseren), dus waarom niet een feature class definitie bewerken, die ook in XML staat? Feature class definities bevinden zich in een XML-kolom (Definition) in de GDB_ITEMS tabel. <\/P><\/P><\/P>Klik op de xml in de definitiekolom, en je ziet het ruwe schema voor de feature class. Zoek naar de naam van het attribuut dat zogenaamd niet verwijderd mag worden: <\/P><SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><<\/SPAN>GPFieldInfoEx<\/SPAN> <SPAN class="attr-name token"><SPAN class="namespace token">xsi:<\/SPAN>type<\/SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=<\/SPAN><SPAN class="punctuation token">"<\/SPAN>typens:GPFieldInfoEx<SPAN class="punctuation token">"<\/SPAN><\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><<\/SPAN>Name<\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN>GIS_LOCATION_ID<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><\/<\/SPAN>Name<\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><<\/SPAN>ModelName<\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN>GIS_LOCATION_ID<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><\/<\/SPAN>ModelName<\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><<\/PAN>FieldType<\/PAN><SPAN class="punctuation token">><\/SPAN><\/SPAN>esriFieldTypeGUID<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><\/<\/PAN>FieldType<\/PAN><spanclass=\"punctuationtoken\">><\/<span></span></span></span></span> class="token tag"><<\/SPAN>OIDFieldName<\/SPAN>><\/SPAN><\/SPAN>OBJECTID<\/<\/SPAN>OIDFieldName<\/SPAN>><\/SPAN><\/SPAN>\n\n\nblah blah blah\n\n <<\/SPAN>GPFieldInfoEx<\/SPAN> xsi:<\/SPAN>type<\/SPAN>=<\/SPAN>"<\/SPAN>typens:GPFieldInfoEx"<\/SPAN><\/SPAN>><\/SPAN><\/SPAN>\n <<\/SPAN>Name<\/SPAN>><\/SPAN><\/SPAN>GIS_LOCATION_ID<\/<\/SPAN>Name<\/SPAN>><\/SPAN><\/SPAN>\n <<\/SPAN>ModelName<\/SPAN>><\/SPAN><\/SPAN>GIS_LOCATION_ID<\/<\/Span>ModelName<\/span>><\/span><\/span>\n <<\/span>FieldType<\/span>><\/span><\/span>esriFieldTypeGUID<\/<\/span>FieldType<\/span>><\/span><\/span>\n <<\/span>IsNullable<\/span>><\/span><\/span>true<\/<\/span>IsNullable<\/span>><\/span><\/span>\n <\/<\/span>GPFieldInfoEx<\/span>><\/span><\/span>\n\nblah blah blah\n\n <<\/span>ChangeTracked<\/span>><\/span><\/span>true<\/<\/span>ChangeTracked<\/span>><\/span><\/span>\n <<\/span>FieldFilteringEnabled<\/span>><\/span><\/span>false<\/<\/span>FieldFilteringEnabled<\/span>><\/span><\/span>\n <<\/span>FilteredFieldNames<\/ span> < spanclass= "attr-name" > < spanclass= "namespace" > xsi:< \/ span > type < \/ span > < spanclass= "attr-value" > = < spanclass= " punctuation " > " < \/ span > typens:Names < spanclass= " punctuation " > " < \/ span > < \/ span > < spanclass= " punctuation " > / & gt ; < \/ span > < \/ span > \ n < spanclass= "tokentag" >< spanclass= "tokentag" >< spanclass= " punctuation " > & lt ; \/ DEFeatureClassInfo < \/ span >< spanclass= " punctuation " > & gt ; < \/ span >< \' \ nWHERE [Name] = 'WETLANDS.DBO.GRSM_HYDRO_WETLAND_PT'< spanclass= "line-numbers-rows" >< span >< < EMOJI_0 > >< \/ span >< span >< < EMOJI_1 > >< \/ span >< span >< < EMOJI_2 > >< \/ span >< span >< < EMOJI_3 > >< \/ span >< span >< < EMOJI_4 > >< \/ span >< span >< < EMOJI_5 > >< \/ span >< span >< < EMOJI_6 > >< \/ span >< span >< < EMOJI_7 > >< \/ span >< span >< < EMOJI_8 > >< \/ span >< span >< < EMOJI_9 > >< \/ span >< span >< < EMOJI_10 > >< \/ span >< span >< < EMOJI_11 > >< \/ span >< span >< < EMOJI_12 > >< \/ span >< span >< < EMOJI_13 > >< \/ span >< span >< < EMOJI_14 > >< \/ span >< span >< < EMOJI_15 > >< \/ span >< span >< < EMOJI_16 > >< \/ span >< span >< < EMOJI_17 > >< \/ span >< span >< < EMOJI_18 > >< \/ span >< span >< < EMOJI_19 > >< \/ span >< span >< < EMOJI_20 > >< \/ span >< span >< < EMOJI_21 > >< \/ span >< span >< < EMOJI_22 > >< \/ span >< span >< < EMOJI_23 > >< \/ span /><|vq_13284|>}
<\/P>
Er is een snellere en eenvoudigere manier om dit probleem op te lossen. Ik besteed veel tijd aan het bewerken van metadata in de native XML (sneller, en ik kan dingen makkelijker automatiseren), dus waarom niet een feature class definitie bewerken, die ook in XML staat? Feature class definities bevinden zich in een XML-kolom (Definition) in de GDB_ITEMS tabel. <\/P>
Klik op de xml in de definitiekolom, en je ziet het ruwe schema voor de feature class. Zoek naar de naam van het attribuut dat zogenaamd niet verwijderd mag worden: <\/P>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><<\/SPAN>GPFieldInfoEx<\/SPAN> <SPAN class="attr-name token"><SPAN class="namespace token">xsi:<\/SPAN>type<\/SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=<\/SPAN><SPAN class="punctuation token">"<\/SPAN>typens:GPFieldInfoEx<SPAN class="punctuation token">"<\/SPAN><\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><<\/SPAN>Name<\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN>GIS_LOCATION_ID<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><\/<\/SPAN>Name<\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><<\/SPAN>ModelName<\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN>GIS_LOCATION_ID<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><\/<\/SPAN>ModelName<\/SPAN><SPAN class="punctuation token">><\/SPAN><\/SPAN> <SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><<\/PAN>FieldType<\/PAN><SPAN class="punctuation token">><\/SPAN><\/SPAN>esriFieldTypeGUID<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><\/<\/PAN>FieldType<\/PAN><spanclass=\"punctuationtoken\">><\/<span></span></span></span></span>
A much quicker way to do this is
<SPAN class="keyword token">UPDATE</SPAN> <SPAN class="punctuation token">[</SPAN>WETLANDS<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">[</SPAN>dbo<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">[</SPAN>GDB_ITEMS<SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">SET</SPAN> <SPAN class="punctuation token">[</SPAN>Definition<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="keyword token">modify</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">'delete (/DEFeatureClassInfo/GPFieldInfoExs/GPFieldInfoEx[Name="CREATEUSER"]/Required)[1] '</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">WHERE</SPAN> <SPAN class="punctuation token">[</SPAN>Name<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">'WETLANDS.DBO.GRSM_HYDRO_SEEPS'</SPAN> <SPAN class="keyword token">UPDATE</SPAN> <SPAN class="punctuation token">[</SPAN>WETLANDS<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">[</SPAN>dbo<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">[</SPAN>GDB_ITEMS<SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">SET</SPAN> <SPAN class="punctuation token">[</SPAN>Definition<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="keyword token">modify</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">'delete (/DEFeatureClassInfo/GPFieldInfoExs/GPFieldInfoEx[Name="EDITUSER"]/Required)[1] '</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">WHERE</SPAN> <SPAN class="punctuation token">[</SPAN>Name<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">'WETLANDS.DBO.GRSM_HYDRO_SEEPS'</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.