OVH Cloud OVH Cloud

Compatibilité déclencheur avec DTS

12 réponses
Avatar
Alexandre
Je r=E9cup=E8re des informations =E0 partir d'un fichier Excel=20
dans une TABLE 1 =E0 l'aide d'un lot DTS.=20
Je r=E9cup=E8re une info de cette table 1 que j'ins=E8re dans=20
une TABLE 2 toujours =E0 l'aide d'un lot DTS.=20
Cette table 2 poss=E8de un d=E9clencheur qui met =E0 jour une=20
TABLE 3 si un nouvel enregistrement inconnu est ins=E9r=E9.=20
Le d=E9clencheur fonctionne quand j'ins=E8re manuelle une=20
nouvelle donn=E9e dans la TABLE 2 mais ne fonctionne pas=20
avec le lot DTS qui ins=E8re pourtant bien une nouvelle=20
donn=E9e dans la TABLE 2.=20

Les lots DTS fonctionnent-ils de mani=E8re =E0 part ?

10 réponses

1 2
Avatar
Oxiane
Dans l'onglet 'Options' de ta tâche de transformation de données, il faut
que tu décoches 'Utiliser le chargement rapide'

Voilà-Voilà

--
Cordialement

Oxiane
----------------------------------------------------------
Omnia vanitas


"Alexandre" a écrit dans le message de
news:562001c4813a$81d6a2b0$
Je récupère des informations à partir d'un fichier Excel
dans une TABLE 1 à l'aide d'un lot DTS.
Je récupère une info de cette table 1 que j'insère dans
une TABLE 2 toujours à l'aide d'un lot DTS.
Cette table 2 possède un déclencheur qui met à jour une
TABLE 3 si un nouvel enregistrement inconnu est inséré.
Le déclencheur fonctionne quand j'insère manuelle une
nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
avec le lot DTS qui insère pourtant bien une nouvelle
donnée dans la TABLE 2.

Les lots DTS fonctionnent-ils de manière à part ?
Avatar
Fred BROUARD
les lots DTS (à manier avec précaution) utilisent généralement la commande
Transact SQL "BULK INSERT" et non pas l'ordre SQL "INSERT".
Cette commande fait l'impasse sur les triggers posés sur la table.
En revanche, on peut imposer à cet ordre de ne pas court-circuiter les triggers,
en utilisant l'option FIRETRIGGERS ("FIRE_TRIGGERS").


Alexandre a écrit:
Je récupère des informations à partir d'un fichier Excel
dans une TABLE 1 à l'aide d'un lot DTS.
Je récupère une info de cette table 1 que j'insère dans
une TABLE 2 toujours à l'aide d'un lot DTS.
Cette table 2 possède un déclencheur qui met à jour une
TABLE 3 si un nouvel enregistrement inconnu est inséré.
Le déclencheur fonctionne quand j'insère manuelle une
nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
avec le lot DTS qui insère pourtant bien une nouvelle
donnée dans la TABLE 2.

Les lots DTS fonctionnent-ils de manière à part ?



--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Alexadre
Merci Fred pour ta réponse qui m'aiguille un peu plus.
Par contre, après avoir fais quelques recherches sur
FIRE_TRIGGERS, il n'apparaît qu'en utilisant bcp, or, je
ne l'ai encore jamais utilisé. Peut-on activer l'option
FIRETRIGGERS dans le lot DTS directement ?

-----Message d'origine-----
les lots DTS (à manier avec précaution) utilisent


généralement la commande
Transact SQL "BULK INSERT" et non pas l'ordre


SQL "INSERT".
Cette commande fait l'impasse sur les triggers posés sur


la table.
En revanche, on peut imposer à cet ordre de ne pas court-


circuiter les triggers,
en utilisant l'option FIRETRIGGERS ("FIRE_TRIGGERS").


Alexandre a écrit:
Je récupère des informations à partir d'un fichier




Excel
dans une TABLE 1 à l'aide d'un lot DTS.
Je récupère une info de cette table 1 que j'insère dans
une TABLE 2 toujours à l'aide d'un lot DTS.
Cette table 2 possède un déclencheur qui met à jour une
TABLE 3 si un nouvel enregistrement inconnu est inséré.
Le déclencheur fonctionne quand j'insère manuelle une
nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
avec le lot DTS qui insère pourtant bien une nouvelle
donnée dans la TABLE 2.

Les lots DTS fonctionnent-ils de manière à part ?



--
Frédéric BROUARD, MVP SQL Server. Expert SQL /


spécialiste Delphi, web
Livre SQL - col. Référence :


http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :


http://sqlpro.developpez.com
************************ www.datasapiens.com


*************************

.



Avatar
Alexandre
J'ai décoché l'option mais non seulement ca ne fonctionne
pas, mais en plus, ma TABLE2 ne se met plus à jour.
Si tu as + d'info, je suis preneur.
Je te remercie tout de même puor ta solution.

Alex
-----Message d'origine-----
Dans l'onglet 'Options' de ta tâche de transformation de


données, il faut
que tu décoches 'Utiliser le chargement rapide'

Voilà-Voilà

--
Cordialement

Oxiane
----------------------------------------------------------
Omnia vanitas


"Alexandre" a écrit dans le message de
news:562001c4813a$81d6a2b0$
Je récupère des informations à partir d'un fichier Excel
dans une TABLE 1 à l'aide d'un lot DTS.
Je récupère une info de cette table 1 que j'insère dans
une TABLE 2 toujours à l'aide d'un lot DTS.
Cette table 2 possède un déclencheur qui met à jour une
TABLE 3 si un nouvel enregistrement inconnu est inséré.
Le déclencheur fonctionne quand j'insère manuelle une
nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
avec le lot DTS qui insère pourtant bien une nouvelle
donnée dans la TABLE 2.

Les lots DTS fonctionnent-ils de manière à part ?


.



Avatar
Fred BROUARD
les lots DTS encapsuelent du code mi VB, mi Transact SQL.

Il faut donc aller à la pêche et trouver l'ordre BULK INSERT et le modifier.

Pour ma part je n'utilise que TRES TRES rarement les lots DTS car ce sont des
PAC... Comme il masquent tout, il est difficile de savoir en fait ce qu'ils font
réellement. Il existe d'autres solutions, a mon avis plus intelligentes !

A +

Alexadre a écrit:
Merci Fred pour ta réponse qui m'aiguille un peu plus.
Par contre, après avoir fais quelques recherches sur
FIRE_TRIGGERS, il n'apparaît qu'en utilisant bcp, or, je
ne l'ai encore jamais utilisé. Peut-on activer l'option
FIRETRIGGERS dans le lot DTS directement ?


-----Message d'origine-----
les lots DTS (à manier avec précaution) utilisent



généralement la commande

Transact SQL "BULK INSERT" et non pas l'ordre



SQL "INSERT".

Cette commande fait l'impasse sur les triggers posés sur



la table.

En revanche, on peut imposer à cet ordre de ne pas court-



circuiter les triggers,

en utilisant l'option FIRETRIGGERS ("FIRE_TRIGGERS").


Alexandre a écrit:

Je récupère des informations à partir d'un fichier





Excel

dans une TABLE 1 à l'aide d'un lot DTS.
Je récupère une info de cette table 1 que j'insère dans
une TABLE 2 toujours à l'aide d'un lot DTS.
Cette table 2 possède un déclencheur qui met à jour une
TABLE 3 si un nouvel enregistrement inconnu est inséré.
Le déclencheur fonctionne quand j'insère manuelle une
nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
avec le lot DTS qui insère pourtant bien une nouvelle
donnée dans la TABLE 2.

Les lots DTS fonctionnent-ils de manière à part ?



--
Frédéric BROUARD, MVP SQL Server. Expert SQL /



spécialiste Delphi, web

Livre SQL - col. Référence :



http://sqlpro.developpez.com/bookSQL.html

Le site du SQL, pour débutants et pros :



http://sqlpro.developpez.com

************************ www.datasapiens.com



*************************

.









--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Alexandre
Les solutions plus intelligentes seraient d'utiliser BCP ?

-----Message d'origine-----
les lots DTS encapsuelent du code mi VB, mi Transact SQL.

Il faut donc aller à la pêche et trouver l'ordre BULK


INSERT et le modifier.

Pour ma part je n'utilise que TRES TRES rarement les lots


DTS car ce sont des
PAC... Comme il masquent tout, il est difficile de savoir


en fait ce qu'ils font
réellement. Il existe d'autres solutions, a mon avis plus


intelligentes !

A +

Alexadre a écrit:
Merci Fred pour ta réponse qui m'aiguille un peu plus.
Par contre, après avoir fais quelques recherches sur
FIRE_TRIGGERS, il n'apparaît qu'en utilisant bcp, or,




je
ne l'ai encore jamais utilisé. Peut-on activer l'option
FIRETRIGGERS dans le lot DTS directement ?


-----Message d'origine-----
les lots DTS (à manier avec précaution) utilisent



généralement la commande

Transact SQL "BULK INSERT" et non pas l'ordre



SQL "INSERT".

Cette commande fait l'impasse sur les triggers posés






sur

la table.

En revanche, on peut imposer à cet ordre de ne pas






court-

circuiter les triggers,

en utilisant l'option FIRETRIGGERS ("FIRE_TRIGGERS").


Alexandre a écrit:

Je récupère des informations à partir d'un fichier





Excel

dans une TABLE 1 à l'aide d'un lot DTS.
Je récupère une info de cette table 1 que j'insère








dans
une TABLE 2 toujours à l'aide d'un lot DTS.
Cette table 2 possède un déclencheur qui met à jour








une
TABLE 3 si un nouvel enregistrement inconnu est








inséré.
Le déclencheur fonctionne quand j'insère manuelle une
nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
avec le lot DTS qui insère pourtant bien une nouvelle
donnée dans la TABLE 2.

Les lots DTS fonctionnent-ils de manière à part ?



--
Frédéric BROUARD, MVP SQL Server. Expert SQL /



spécialiste Delphi, web

Livre SQL - col. Référence :



http://sqlpro.developpez.com/bookSQL.html

Le site du SQL, pour débutants et pros :



http://sqlpro.developpez.com

************************ www.datasapiens.com



*************************

.









--
Frédéric BROUARD, MVP SQL Server. Expert SQL /


spécialiste Delphi, web
Livre SQL - col. Référence :


http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :


http://sqlpro.developpez.com
************************ www.datasapiens.com


*************************

.



Avatar
Oxiane
Bizarre-Bizarre...

en théorie, ça fonctionne correctement...
justement, comme le dit Fred dans l'autre partie du Thread, DTS va tenter
d'utiliser BCP en priorité.
Par contre, si tu décoches l'option comme indiqué, il utilisera des INSERT,
ce qui est moins performant, mais permet d'utiliser toutes les possibilités
du SGBD.

Je fais des essais.

--
Cordialement

Oxiane
----------------------------------------------------------
Omnia vanitas


"Alexandre" a écrit dans le message de
news:69be01c48372$4dc1bf70$
J'ai décoché l'option mais non seulement ca ne fonctionne
pas, mais en plus, ma TABLE2 ne se met plus à jour.
Si tu as + d'info, je suis preneur.
Je te remercie tout de même puor ta solution.

Alex
-----Message d'origine-----
Dans l'onglet 'Options' de ta tâche de transformation de


données, il faut
que tu décoches 'Utiliser le chargement rapide'

Voilà-Voilà

--
Cordialement

Oxiane
----------------------------------------------------------
Omnia vanitas


"Alexandre" a écrit dans le message de
news:562001c4813a$81d6a2b0$
Je récupère des informations à partir d'un fichier Excel
dans une TABLE 1 à l'aide d'un lot DTS.
Je récupère une info de cette table 1 que j'insère dans
une TABLE 2 toujours à l'aide d'un lot DTS.
Cette table 2 possède un déclencheur qui met à jour une
TABLE 3 si un nouvel enregistrement inconnu est inséré.
Le déclencheur fonctionne quand j'insère manuelle une
nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
avec le lot DTS qui insère pourtant bien une nouvelle
donnée dans la TABLE 2.

Les lots DTS fonctionnent-ils de manière à part ?


.



Avatar
Fred BROUARD
par exemple BULK INSERT avec un fichier de mapage qui insère les données dans
une table de transit, puis une SP qui valide ces données et les insèrent
définitivement dans les tables de l'appli.

A +

Alexandre a écrit:
Les solutions plus intelligentes seraient d'utiliser BCP ?


-----Message d'origine-----
les lots DTS encapsuelent du code mi VB, mi Transact SQL.

Il faut donc aller à la pêche et trouver l'ordre BULK



INSERT et le modifier.

Pour ma part je n'utilise que TRES TRES rarement les lots



DTS car ce sont des

PAC... Comme il masquent tout, il est difficile de savoir



en fait ce qu'ils font

réellement. Il existe d'autres solutions, a mon avis plus



intelligentes !

A +

Alexadre a écrit:

Merci Fred pour ta réponse qui m'aiguille un peu plus.
Par contre, après avoir fais quelques recherches sur
FIRE_TRIGGERS, il n'apparaît qu'en utilisant bcp, or,





je

ne l'ai encore jamais utilisé. Peut-on activer l'option
FIRETRIGGERS dans le lot DTS directement ?



-----Message d'origine-----
les lots DTS (à manier avec précaution) utilisent



généralement la commande


Transact SQL "BULK INSERT" et non pas l'ordre



SQL "INSERT".


Cette commande fait l'impasse sur les triggers posés







sur

la table.


En revanche, on peut imposer à cet ordre de ne pas







court-

circuiter les triggers,


en utilisant l'option FIRETRIGGERS ("FIRE_TRIGGERS").


Alexandre a écrit:


Je récupère des informations à partir d'un fichier





Excel


dans une TABLE 1 à l'aide d'un lot DTS.
Je récupère une info de cette table 1 que j'insère









dans

une TABLE 2 toujours à l'aide d'un lot DTS.
Cette table 2 possède un déclencheur qui met à jour









une

TABLE 3 si un nouvel enregistrement inconnu est









inséré.

Le déclencheur fonctionne quand j'insère manuelle une
nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
avec le lot DTS qui insère pourtant bien une nouvelle
donnée dans la TABLE 2.

Les lots DTS fonctionnent-ils de manière à part ?



--
Frédéric BROUARD, MVP SQL Server. Expert SQL /



spécialiste Delphi, web


Livre SQL - col. Référence :



http://sqlpro.developpez.com/bookSQL.html


Le site du SQL, pour débutants et pros :



http://sqlpro.developpez.com


************************ www.datasapiens.com



*************************


.





--
Frédéric BROUARD, MVP SQL Server. Expert SQL /



spécialiste Delphi, web

Livre SQL - col. Référence :



http://sqlpro.developpez.com/bookSQL.html

Le site du SQL, pour débutants et pros :



http://sqlpro.developpez.com

************************ www.datasapiens.com



*************************

.









--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Oxiane
J'ai testé, ça fonctionne correctement avec ma solution.
Je confirme que par défaut, la datapump utiklise BCp et ne génère pas de
triggers, et qu'en décochant la case de "'chargement rapide', on réactive
les triggers

tu as bien

cnx Excel --> dataPump1 --> cnx SQLServer --> dataPump2 --> cnxSQLServer

et tu as bien décoché la case 'chargement rapide' dans la datapump2 ?

de toute façon, je ne vois pas comment une modif dans datapump2 peut
entrainer la perte de chargement par datapump1...




--
Cordialement

Oxiane
----------------------------------------------------------
Omnia vanitas
www.omniavanitas.com


"Alexandre" a écrit dans le message de
news:69be01c48372$4dc1bf70$
J'ai décoché l'option mais non seulement ca ne fonctionne
pas, mais en plus, ma TABLE2 ne se met plus à jour.
Si tu as + d'info, je suis preneur.
Je te remercie tout de même puor ta solution.

Alex
-----Message d'origine-----
Dans l'onglet 'Options' de ta tâche de transformation de


données, il faut
que tu décoches 'Utiliser le chargement rapide'

Voilà-Voilà

--
Cordialement

Oxiane
----------------------------------------------------------
Omnia vanitas


"Alexandre" a écrit dans le message de
news:562001c4813a$81d6a2b0$
Je récupère des informations à partir d'un fichier Excel
dans une TABLE 1 à l'aide d'un lot DTS.
Je récupère une info de cette table 1 que j'insère dans
une TABLE 2 toujours à l'aide d'un lot DTS.
Cette table 2 possède un déclencheur qui met à jour une
TABLE 3 si un nouvel enregistrement inconnu est inséré.
Le déclencheur fonctionne quand j'insère manuelle une
nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
avec le lot DTS qui insère pourtant bien une nouvelle
donnée dans la TABLE 2.

Les lots DTS fonctionnent-ils de manière à part ?


.



Avatar
Oxiane
des solutions plus compliquées, donc plus intelligentes ...

Après le procès Access, voilà le procès DTS !

On arrivera à dire que C++ est un langage de fainéants pour les amateurs
d'assembleurs !

--
Cordialement

Oxiane
----------------------------------------------------------
Omnia vanitas


"Fred BROUARD" a écrit dans le message de
news:%
les lots DTS encapsuelent du code mi VB, mi Transact SQL.

Il faut donc aller à la pêche et trouver l'ordre BULK INSERT et le


modifier.

Pour ma part je n'utilise que TRES TRES rarement les lots DTS car ce sont


des
PAC... Comme il masquent tout, il est difficile de savoir en fait ce


qu'ils font
réellement. Il existe d'autres solutions, a mon avis plus intelligentes !

A +

Alexadre a écrit:
> Merci Fred pour ta réponse qui m'aiguille un peu plus.
> Par contre, après avoir fais quelques recherches sur
> FIRE_TRIGGERS, il n'apparaît qu'en utilisant bcp, or, je
> ne l'ai encore jamais utilisé. Peut-on activer l'option
> FIRETRIGGERS dans le lot DTS directement ?
>
>
>>-----Message d'origine-----
>>les lots DTS (à manier avec précaution) utilisent
>
> généralement la commande
>
>>Transact SQL "BULK INSERT" et non pas l'ordre
>
> SQL "INSERT".
>
>>Cette commande fait l'impasse sur les triggers posés sur
>
> la table.
>
>>En revanche, on peut imposer à cet ordre de ne pas court-
>
> circuiter les triggers,
>
>>en utilisant l'option FIRETRIGGERS ("FIRE_TRIGGERS").
>>
>>
>>Alexandre a écrit:
>>
>>>Je récupère des informations à partir d'un fichier
>
> Excel
>
>>>dans une TABLE 1 à l'aide d'un lot DTS.
>>>Je récupère une info de cette table 1 que j'insère dans
>>>une TABLE 2 toujours à l'aide d'un lot DTS.
>>>Cette table 2 possède un déclencheur qui met à jour une
>>>TABLE 3 si un nouvel enregistrement inconnu est inséré.
>>>Le déclencheur fonctionne quand j'insère manuelle une
>>>nouvelle donnée dans la TABLE 2 mais ne fonctionne pas
>>>avec le lot DTS qui insère pourtant bien une nouvelle
>>>donnée dans la TABLE 2.
>>>
>>>Les lots DTS fonctionnent-ils de manière à part ?
>>
>>--
>>Frédéric BROUARD, MVP SQL Server. Expert SQL /
>
> spécialiste Delphi, web
>
>>Livre SQL - col. Référence :
>
> http://sqlpro.developpez.com/bookSQL.html
>
>>Le site du SQL, pour débutants et pros :
>
> http://sqlpro.developpez.com
>
>>************************ www.datasapiens.com
>
> *************************
>
>>.
>
>>

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************



1 2