<\/HEAD>
Als GIS-Administrator ist es sehr einfach, viele Felder zu einer Feature-Klasse hinzuzufügen, und noch einfacher, naiv zu denken, dass die Leute sie auch ausfüllen oder bearbeiten werden! Ein häufiges Thema für mich sind Datumsfelder. Wir haben Bearbeitungsdatum, Erstellungsdatum, FGDC-Bearbeitungs- und Erstellungsdatum, Jahr... bla bla bla.<\/P>
<\/P>
Ich wünschte, es gäbe nur eines oder sogar keine Verpflichtung für Editoren, über Daten nachzudenken, und die Datenbank würde es einfach... handhaben.<\/P>
<\/P>
Das kann so sein. Mit einem Datenbank-Trigger. Beginnen wir mit FGDC-Daten. Wenn Sie eine Form von Feature-Level-Metadaten implementieren oder eine Datenanalyse durchführen, die ein anderes Metadaten-Element mit FGDC-Quelle, Erstellungs- oder Bearbeitungsdatum kennzeichnet und gleichzeitig Editor Tracking aktiviert ist, gibt es keinen Grund, warum Sie auch die FGDC[whatever]DATE-Spalte ausfüllen sollten.<\/P>
<\/P>
CREATE TRIGGER [dbo].[SOMETABLE_DATE]
ON [dbo].[SOMETABLE]
AFTER INSERT, UPDATE NOT FOR REPLICATION
AS BEGIN
SET NOCOUNT ON;
UPDATE [dbo].[SOMETABLE]
SET
SRCDATEFGDC = (convert(varchar(8), SOURCEDATE, 112)),
CREATEDATEFGDC = (convert(varchar(8), CREATEDATE, 112)),
EDITDATEFGDC = (convert(varchar(8), EDITDATE, 112))
END
GO<\/PRE><\/P>Hier nehmen wir die Werte von EDITDATE und CREATE date, die sql sind<\/P>datetime(2)<\/PRE>und konvertieren sie in ein String-Format als yyyymmdd. Die 112 steuert das Ausgabeformat. Siehe CAST and CONVERT (Transact-SQL)<\/A> für eine vollständige Liste der Datumsumwandlungsformate.<\/P><\/P>
Außerdem wählt der Benutzer in diesem Fall auch ein Quelldatum aus, das sich vom Erstellungsdatum unterscheiden kann und das ebenfalls konvertiert wird.<\/P>
<\/P>
Wenn Sie eine Jahres-Spalte haben, können Sie auch<\/P>
<\/P>
YEAR = CASE WHEN SOURCEDATE IS NULL THEN NULL ELSE YEAR(SOURCEDATE) END<\/PRE><\/P>mit Behandlung von Nullwerten hinzufügen.<\/P><\/P>Wenn Sie aus irgendeinem Grund Editor Tracking deaktiviert haben (was oft Probleme mit Collector for ArcGIS verursacht), könnten Sie eine Standardbedingung auf Ihre(n) Datums-Spalte(n) setzen als<\/P>getdate()<\/PRE>.<\/P><\/P>Dies ist ein persönlicher Blog und empfiehlt, unterstützt oder befürwortet nicht die oben beschriebenen Methoden. Die Änderung von Daten mit SQL außerhalb des ESRI Software-Stacks wird natürlich nicht unterstützt und sollte ohne gründliches Verständnis und Notfallwiederherstellungsplan nicht auf einer Produktionsdatenbank angewendet werden.<\/EM><\/P><\/BODY><\/HTML>