|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mai 2006 Messages : 83 ![]() |
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 ![]() 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 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! |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Bonjour,
Pourrait t'on avoir la DDL de vos tables concernes ? Les serveurs sont ils tous des serveurs SQL Server ? Question bete mais pourquoi passez vous par une table intermediaire pour mettre a jour vos donnees ? A -> B -> C equivalent a A -> C en principe .. ++ |
|
00
|
|
|
#3 | |
|
Nouveau Membre du Club
![]() Inscription : mai 2006 Messages : 83 ![]() |
Citation:
2. oui, les serveurs sont tous des SQL Server 2005 3. la question n'est pas bête, elle est même logique, c'est pourquoi j'ai précisé que je ne pouvais pas modifier le mode opératoire. En fait, je n'ai pas d'accès direct à la table A. Le seul moyen d'y accéder est via un bcp out. Et pour tout récupérer dans une table, je fais l'inverse, un bcp in. Je me suis peut être plantée sur le DDL, je ne vois pas vraiment ce que ça signifie. |
|
|
|
00
|
|
|
#4 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2006 Messages : 83 ![]() |
J'ai finalement trouvé la solution!
* Pour le problème n°1 Mon erreur était là : Citation:
* Pour le problème n°2 Citation:
![]() Merci de m'avoir au moins lu, j'imagine que personne n'avait la réponse |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com