<\/HEAD>
En tant qu'administrateur GIS, il est très facile d'ajouter beaucoup, beaucoup de champs à une classe d'entités et encore plus facile de penser naïvement que les gens vont les remplir ou les modifier ! Un thème commun pour moi est les champs de date. Nous avons la date de modification, la date de création, la date de modification FGDC et la date de création FGDC, l'année... bla bla bla.<\/P>
<\/P>
J'aimerais qu'il n'y ait qu'un seul, ou même aucun, fardeau pour les éditeurs de devoir penser aux dates et que la base de données s'en charge simplement...<\/P>
<\/P>
Cela peut être le cas. Avec un déclencheur de base de données. Commençons par les dates FGDC. Si vous mettez en œuvre une forme de métadonnées au niveau des entités, ou une forme d'exploration de données qui étiquette un autre élément de métadonnées avec la source FGDC, la date de création ou de modification tout en ayant le suivi des éditeurs activé, il n'y a aucune raison pour que vous deviez également remplir la colonne 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>Ici, nous prenons les valeurs EDITDATE et CREATE date, qui sont sql<\/P>datetime(2)<\/PRE>et les convertissons en format chaîne comme yyyymmdd. Le 112 contrôle le format de sortie. Voir CAST and CONVERT (Transact-SQL)<\/A> pour une liste complète des formats de conversion de date.<\/P><\/P>
De plus, l'utilisateur sélectionne également une date source dans ce cas qui peut être différente de la date de création et celle-ci est aussi convertie.<\/P>
<\/P>
Si vous avez une colonne année vous pouvez aussi<\/P>
<\/P>
YEAR = CASE WHEN SOURCEDATE IS NULL THEN NULL ELSE YEAR(SOURCEDATE) END<\/PRE><\/P>avec gestion des valeurs nulles incluse.<\/P><\/P>Si pour une raison quelconque vous avez désactivé le suivi des éditeurs (ce qui cause souvent des problèmes avec Collector for ArcGIS) vous pourriez mettre une contrainte par défaut sur votre(s) colonne(s) date comme<\/P>getdate()<\/PRE>.<\/P><\/P>Ceci est un blog personnel et ne recommande pas, n'endosse pas et ne soutient pas les méthodes décrites ci-dessus. La modification des données en utilisant SQL en dehors de la pile logicielle ESRI n'est bien sûr pas supportée et ne doit pas être appliquée à une base de données en production sans une compréhension approfondie et un plan de reprise après sinistre.<\/EM><\/P><\/BODY><\/HTML>