Requete dans un lot dts

xzonz Messages postés 107 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022 - 24 août 2006 à 00:32
cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 - 26 août 2006 à 18:40
salut tout le monde

voila ma question

j'ai une requete qui fait les actions suivantes
- verification de la presence d'une table (status_export)
  si oui on la supprime
-copie de la structure dune deuxieme table (status...qui va servir de source)
-insert du contenu de status dans status export
-transformation de deux champs de la table status_export
 (format de date et d'heure)
-supression dans status_export des lignes qui ne correspondent pas à la date du jour
et pour finir j'aimerais exporter la table status_export vers un fichier txt

est il possible de faire ca avec un lot dts ?
j'ai essayé ... mais je ne maitrise pas du tout les différent éléments disponibles
dans le concepteur dts ... j'ai éssayé plein de lots différents ... mais je n'y arrive pas !!
j'ai besoin d'un coup de main.car mes debuts avec dts sont laborieux
MERCI BEAUCOUP
ah ... j'oubliais ... voila la requete ....elle fonctionne bien !
--------------------------------------------------------------------------------
/* on teste si la table existe - si oui on la supprime */
/*-----------------------------------------------------*/if exists (select * from dbo.sysobjects where id object_id(N'[dbo].[STATUS_EXPORT]') and OBJECTPROPERTY(id, N'IsUserTable') 1)
drop table [dbo].[STATUS_EXPORT]

/* on recopie la structure de la table status dans STATUS_EXPORT */
/*---------------------------------------------------------------*/
select * into STATUS_EXPORT
from STATUS
where 1=2

/* on copie les données de status dans STATUS_EXPORT */
/*---------------------------------------------------*/
insert into STATUS_EXPORT
select [status_id],[status_ident],[status_date],[status_starttime],[status_ani],[status_waitingtime],
[status_talktime],[status_wrapuptime],[status_status],[status_detail],[status_argued],[status_positive],
[status_transfert],[status_comtype],[status_numcamp],[status_camptype],[status_layer],[status_user],
[status_idlink],[rec_cle]
from STATUS

/* modification du format de status_date et status_startime au format MySql */
/*--------------------------------------------------------------------------*/
update STATUS_EXPORT
set status_date = left(status_date, 4) + '-' + substring(status_date, 5, 2) + '-' + right(status_date, 2),
status_starttime = left(status_starttime, 2) + ':' + substring(status_starttime, 3, 2) + ':' + right(status_starttime, 2)

/* on supprime les lignes differentes de la date du jour dans status_export */
/*---------------------------------------------------------------------------*/
delete from STATUS_EXPORT
where STATUS_DATE not in (
SELECT CONVERT(VARCHAR(10), GETDATE(), 120))

4 réponses

cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
24 août 2006 à 10:08
Avec des tâches de scripts SQL çà doit marcher sans problèmes, en découpant les différentes portions de ton scripts dans différentes tâches.

Petit commentaire, c'est quoi l'interêt que tu as à faire çà :

/* on recopie la structure de la table status dans STATUS_EXPORT */
/*---------------------------------------------------------------*/
select * into STATUS_EXPORT
from STATUS
where 1=2

/* on copie les données de status dans STATUS_EXPORT */
/*---------------------------------------------------*/
insert into STATUS_EXPORT
select [status_id],[status_ident],[status_date],[status_starttime],[status_ani],[status_waitingtime],
[status_talktime],[status_wrapuptime],[status_status],[status_detail],[status_argued],[status_positive],
[status_transfert],[status_comtype],[status_numcamp],[status_camptype],[status_layer],[status_user],
[status_idlink],[rec_cle]
from STATUS

Au lieu de çà :

select * into STATUS_EXPORT
from STATUS

Et tu finis par une tâche de d'export (pour la créer tu peux partir de l'assistant d'exportaion de données c'est sans doute plus simple, en lui disant de sauvegarder le lot DTS à la sortie)

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
0
xzonz Messages postés 107 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022
24 août 2006 à 17:25
salut

merci beaucoup pour le conseil au sujet de:

select * into STATUS_EXPORT
from STATUS

c'est quand meme mieux

pour l'export vers un txt c'est bon j'ai trouvé
(c'était pas bien difficile)

mais quand je suis dans le concepteur dts
quel type de tache utiliser pour pouvoir
executer un script sql - est ce une tache de transformation
de donnée .... et comment la configurer ?
c'est la ou je suis un peu perdu !
0
cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
24 août 2006 à 17:30
C'est une tâche de scripts SQL ou T-SQL

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
0
cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 4
26 août 2006 à 18:40
pour aller un peu plus loin dans l'optimisation je pense que la conversion de champs et la selection des champs du jour peuvent être faite directement dans la requette  SELECT INTO :

select 
   [status_id],
   [status_ident],
   left(status_date, 4) + '-' + substring(status_date, 5, 2) + '-' + right(status_date, 2) as [status_date],
   left(status_starttime, 2) + ':' + substring(status_starttime, 3, 2) + ':' + right(status_starttime, 2) as [status_starttime],
   [status_ani],
   [status_waitingtime],
   [status_talktime],
   [status_wrapuptime],
   [status_status],
   [status_detail],
   [status_argued],
   [status_positive],
   [status_transfert],
   [status_comtype],
   [status_numcamp],
   [status_camptype],
   [status_layer],
   [status_user],
   [status_idlink],
   [rec_cle]
into
   STATUS_EXPORT
from
   STATUS
where
   STATUS_DATE = GETDATE();
0
Rejoignez-nous