Pour organiser l'interrogation simplifiée basée sur le minuteur, chaque mise à jour de la table de base de données doit mettre à jour un champ d'horodatage dans une base de données SQL Server 2008 (puis interroger, lire sa valeur, comparer avec la valeur frontale et prendre des décisions sur la lecture de toute la table). En ce qui concerne tout cela, comment je pouvais lire l'heure du système pour l'horodatage de l'écriture? Quel format de données du champ SQL Server utiliser (DataTime ou Time)? Et comment les valeurs de ce format pourraient être comparées?Comment lire l'heure système dans WPF pour mettre à jour le champ d'horodatage SQL Server?
Répondre
Parlez-vous d'une colonne de base de données de TIMESTAMP
type ?? Ce sont des horodatages binaires que SQL Server mettra à jour en interne - ils n'ont rien à voir avec la date et/ou l'heure - c'est vraiment un compteur encodé binaire. Ces champs sont gérés par le système, ils sont fiables et très précis. Si vous souhaitez utiliser un mécanisme de verrouillage de concurrence optimiste, utilisez ce type de champ. Si vous voulez un champ DATETIME
contenant la date et l'heure de la dernière modification, il est préférable d'avoir un déclencheur AFTER INSERT/AFTER UPDATE sur cette table qui définit la dernière colonne mise à jour à la date du jour/temps du SQL Server automatiquement, sans que vous ayez à faire quoi que ce soit à ce sujet.
DATETIME
dans SQL Server 2005 est précis à environ 3,33 ms - dans SQL Server 2008, DATETIME2
peut être rendu précis à 100ns, si nécessaire. En tant que tel, ne comptez pas sur une colonne DATETIME
pour vérifier à 100% si quelque chose a changé ou non! La précision de 3,33 ms pourrait donner des résultats trompeurs!
- 1. Comment mettre à jour récursive groupes dans SQL Server
- 2. Comment mettre à jour le champ datetime
- 3. Comment mettre à jour un champ DateTime dans T-SQL?
- 4. Comment mettre à jour un champ texte ou ntext dans SQL Server 2000
- 5. Est-il possible de mettre à jour un champ binaire dans SQL Server?
- 6. Comment puis-je mettre à jour un champ de clé sur insert pour SQL Server (tableau Siebel S_CAMP_CON)
- 7. Mettre à jour plusieurs lignes dans SQL Server
- 8. SQL Server 2005 mise à jour conditionnelle d'un champ
- 9. comment ne pas mettre à jour le champ timestamp
- 10. SQL Server Supprimer Trigger Pour mettre à jour plusieurs colonnes dans le tableau même
- 11. Exécution d'un fichier de commandes pour mettre à jour un champ avec un caractère étrange dans SQL Server DB
- 12. Comment mettre à jour un champ avec des données aléatoires?
- 13. Comment mettre à jour le schéma SQL Server à l'aide de VS 2005?
- 14. Comment mettre à jour un seul champ en utilisant EF4
- 15. Comment mettre à jour l'enregistrement/champ d'un document dans couchdb
- 16. Mettre à jour le déclencheur insérer Null
- 17. Mettre à jour l'interface utilisateur par le code dans WPF
- 18. Lire et mettre à jour le flux de fichiers
- 19. Sql Server 2005 - Insérer un déclencheur de mise à jour - Mettre à jour, insérer la ligne
- 20. T-SQL: Comment mettre à jour la partie date du champ datetime?
- 21. sql server (mise à jour)
- 22. Comment mettre à jour de manière conditionnelle un champ texte/ntext dans SQL?
- 23. SQL Server: Comment puis-je mettre à jour les dates pour qu'elles soient deux mois avant?
- 24. Mettre à jour un champ pour tous les enregistrements?
- 25. Mettre à jour le panneau dans Asp.net?
- 26. SQL Server 2005 Express ne peut pas mettre à jour le champ date/heure lorsque Windows est défini sur Italien
- 27. Mettre à jour WPF ListBoxItem sans ListBox.Items.Refresh()?
- 28. Comment mettre à jour ce champ dans ma base de données sql?
- 29. Mettre à jour le panneau de mise à jour
- 30. Déclaration SQL pour mettre à jour la date
Marc, merci pour la clarification! Pourriez-vous, s'il vous plaît, dire, quel type de données C# à utiliser du côté de l'application wpf pour contenir et comparer le type TIMESTAMP de SQL Server? – rem
@rem: le type "natif" pour TIMESTAMP est 'byte [8]' - un tableau de 8 octets. Comme il s'agit de 8 octets, vous pouvez facilement le convertir en 'BIGINT' sur le serveur (CAST (yourcol as BIGINT)) puis utiliser le type .NET' long' pour cela. –