[SQL Server 2005]Requête et bcp avec des timestamp
Bonjour à tous,
Je souhaite utiliser le type timestamp pour pouvoir récupérer uniquement les données mises à jour d'une table.
Je procède ainsi :
1. Je récupère en BCP out les données d'une table dans un fichier csv
2. J'insère ces données dans une table en BCP in
Les données récupérées dans le fichier csv sont le résultat d'une requête qui doit se baser sur la colonne timestamp.
Pour être plus claire :
Requête sur A (utilisant timestamp) donne un résultat (données mises à jour) dans une table B ==> bcp out sur cette table ==> bcp in vers la table cible C
La table B est une sous-table de A; la table C est la copie de B.
J'ai déclaré une colonne de type timestamp dans la table C, le type de la table source étant aussi de type timestamp.
Je rencontre cependant deux problèmes :
1. Au niveau du BCP out, la valeur du timestamp se retrouve bien dans le fichier csv. Mais au moment d'être copié dans la table C en bcp in, la valeur n'est plus la même. Enfin, je crois...
Par exemple : le timestamp a la valeur 000000000494A9F9 dans A (puis dans B, puis dans le fichier) mais après le bcp in, quand je refresh la table C, la valeur du timestamp est devenu 0x000000000486A27A :calim2:
2. Comment requêter sur une colonne de type timestamp pour ne récupérer que les enregistrements modifiés? Au départ, je voulais stocker la plus grande valeur du timestamp dans C puis faire une requête du style :
Code:
select * into B from A where colonne_timestamp > max_timestamp_C
Mais vu que la valeur insérée dans C est différente de celle de A, je ne vois plus trop comment m'y prendre.:roll:
Remarques complémentaires :
- les tables A, B et C sont toutes trois dans des bases différentes sur des serveurs différents.
- je ne peux pas modifier le mode opératoire décrit ci-dessus
- quand je parle de timestamp, je parle du type timestamp d'sql server (binary).
Une idée?
merci d'avance!