<\/HEAD>
Jako GIS administrátor je velmi snadné přidat spoustu polí do feature class a ještě snazší naivně si myslet, že lidé je budou vyplňovat nebo upravovat! Jedním z častých témat pro mě jsou datová pole. Máme edit date, create date, FGDC edit a create date, year... bla bla bla.<\/P>
<\/P>
Přál bych si, aby existovalo jen jedno, nebo dokonce žádné, břemeno pro editory přemýšlet o datech a databáze to prostě... vyřešila.<\/P>
<\/P>
To může být pravda. S databázovým triggerem. Začněme s FGDC daty. Pokud implementujete nějakou formu feature-level metadata, nebo nějaký data-mining, který označuje jiný metadata prvek s FGDC source, create nebo edit date a zároveň máte povolen editor tracking, není důvod, proč byste měli také vyplňovat sloupec FGDC[whatever]DATE.<\/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>Zde bereme hodnoty EDITDATE a CREATE date, které jsou sql<\/P>datetime(2)<\/PRE>a převádíme je na řetězcový formát yyyymmdd. Číslo 112 určuje výstupní formát. Viz CAST and CONVERT (Transact-SQL)<\/A> pro úplný seznam formátů převodu dat.<\/P><\/P>
Kromě toho uživatel také vybírá zdrojové datum v tomto případě, které může být odlišné od create date a to je také převedeno.<\/P>
<\/P>
Pokud máte sloupec year, můžete také<\/P>
<\/P>
YEAR = CASE WHEN SOURCEDATE IS NULL THEN NULL ELSE YEAR(SOURCEDATE) END<\/PRE><\/P>s ošetřením null hodnot.<\/P><\/P>Pokud máte editor tracking z nějakého důvodu zakázán (často způsobuje problémy s Collector for ArcGIS), můžete na svůj sloupec(y) s datem dát default constraint jako<\/P>getdate()<\/PRE>.<\/P><\/P>Toto je osobní blog a nedoporučuje, neschvaluje ani nepodporuje výše popsané metody. Úprava dat pomocí SQL mimo ESRI software stack samozřejmě není podporována a neměla by být aplikována na produkční databázi bez důkladného porozumění a plánu obnovy po havárii.<\/EM><\/P><\/BODY><\/HTML>