IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Executer plusieurs procedures à la suite?


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut Executer plusieurs procedures à la suite?
    Boujour a tous,

    J'ai créer une dizaine de procedure différentes que jaimerais executer de facon automatique les unes à la suite des autres, afin de creer une sorte de script.

    Est ce que quelqu'un sait comment faire ca?
    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Par défaut
    On peut par exemple exporter chaque procédure dans un script sql puis créer un fichier .bat:


    @echo off

    @echo ".\proc1.sql"
    SQLCMD -U MONUSER -P MONPASSWORD -S MONSERVER -d MABASE -i ".\proc1.sql"
    pause

    @echo ".\proc2.sql"
    SQLCMD -U MONUSER -P MONPASSWORD -S MONSERVER -d MABASE -i ".\proc2.sql"
    pause


    @echo on

  3. #3
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    tu fais une procedure qui appele toutes les autres procedures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    EXEC procedure1
    EXEC procedure2
    ...
    et tu peux lancer cette procedure dans un job.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    D'acord je vois à peu prés le principe!
    Merci.
    Mais je dois surement placé mes procédures quelques part ou indiquer l'endroit ou celle ci se trouve non?

    Comment puis je faire?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    J'ai une autres questions puisque au final j'aimerais lancé toute ces procedures à intervalle régulier par exemple une fois par semaine le week end est ce possible avec un scrpt ou avec les jobs?

    Je connais un peu les scripts .bat par cntre je ne sait pa du tout ce qu'est un job? et comment on l'utilise?

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    dans entreprise manager, va dans Agent SQL => travaux ou job, click droit et suit

    PS pense a demarrer SQLagent..

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    euh...
    Je suis sur ms server 2000 dans entreprise manager je n'ai pas d'onglet gestion je ne vois pas non plus ce que tu appel sql agent???
    Je suis miope ou c'est parce que je suis en ms server 2000 peut etre?

  8. #8
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    cet dans ton treview de gauche

    là ou tu as (de mémoire)

    base de données
    métadonnées
    agentSQL
    ...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    ah oui effectivement j'étais bien miope je vais essayer avec les jobs alors!
    Merci beaucoup serge pour tes reponses : )

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    Je suis arrivé a creer mes procedures mais l'une d'elle ne sempble pas fonctionner.

    Il s'agit de ma procedure globale qui doit executer toutes les autres procédures.

    voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    create procedure creation
    as
    exec create_proc1	-- Procédure client
    exec create_proc2	-- Procédure client2
    exec create_proc3	-- Procédure contact
    exec create_proc4	-- Procédure contact2
    exec create_proc5	-- Procédure contact3
    --exec create_proc6.sql	-- Procédure prospect
    exec create_proc7	-- Procédure devis
    exec create_proc8	-- Procédure devis2
    exec create_proc9	-- Procédure devis3
    exec create_proc10	-- Procédure devis4
    quelqu'un voit un souci?

  11. #11
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut


    CREATE procedure creation
    AS
    begin
    exec create_proc1 -- Procédure client
    exec create_proc2 -- Procédure client2
    exec create_proc3 -- Procédure contact
    exec create_proc4 -- Procédure contact2
    exec create_proc5 -- Procédure contact3
    --exec create_proc6.sql -- Procédure prospect
    exec create_proc7 -- Procédure devis
    exec create_proc8 -- Procédure devis2
    exec create_proc9 -- Procédure devis3
    exec create_proc10 -- Procédure devis4
    end

    as tu des paramètres a tes proc?
    le propriétaire des proc est il "dbo"? (pour voir fais
    sp_helptext create_proc1
    dans l'analyseur de requêtes

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    Effectivement en copier collant, j'ai oulié d'ajouter begin...end dans mon post!
    mais dans ma procédure c'était bon.
    C'est moi qui est créér ces procedures donc oui le propriétaire est bien dbo.
    Voila ma premiere prcedure par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
     
    CREATE PROCEDURE copie_client(@id_client int OUTPUT)
    AS
    	--DECLARATION DES VARIABLES DE PROCEDURES
    	declare @num varchar(17), @numpayeur varchar(17), @intitule varchar(35), @contact varchar(35), @adresse varchar(35), @complement varchar(35), @code_postal varchar(9), @ville varchar(35), @pays varchar(35), @telephone varchar(21), @fax varchar(21), @mail varchar(69), @site varchar(69),@catcomptaInt int,  @type_personne int, @un_tarif int,@un_representant int
    	declare @conv_AccountId uniqueidentifier, @conv_pays uniqueidentifier, @nom_parent varchar(200), @idnom_parent uniqueidentifier, @nom_tarif varchar(50), @id_tarif uniqueidentifier, @id_utilisateur uniqueidentifier, @businness_unit uniqueidentifier,@conv_CustomerAddressId uniqueidentifier
    	declare @id int, @un_utilisateur varchar(200),@catcomptaChar varchar(35),@type_pers_char varchar(35),@identifiant_client int--,@societe varchar(100)
     
    	--DECLARATION DU CURSEUR
    	DECLARE un_curseur cursor FOR
    	select cbMarq,CT_Num,CT_NumPayeur,CT_Intitule,CT_Contact,CT_Adresse,CT_Complement,CT_CodePostal,CT_Ville,CT_Pays,CT_Telephone,CT_Telecopie,CT_EMail,CT_Site,N_CatCompta,CT_Type,N_CatTarif,RE_No from ESSAIGAMIELEC.dbo.F_COMPTET
    	where cbMarq<=@id_client
    	order by cbMarq
     
    	--OUVERTURE DU CURSEUR ET LANCEMENT
    	OPEN un_curseur
    	FETCH un_curseur INTO @id, @num, @numpayeur, @intitule, @contact, @adresse, @complement, @code_postal, @ville, @pays, @telephone, @fax, @mail, @site, @catcomptaInt, @type_personne, @un_tarif,@un_representant
     
    --POUR LE PREMIER ENREGISTREMENT
     
    	--INITIALISATION DE L'IDENTIFIANT
    	SET @identifiant_client=1 
     
    	--CLEF PRIMAIRE DE LA TABLE ACCOUNTBASE généré de façon unique aléatoirement (uniqueidentifier)
    		SET @conv_AccountId = NEWID()
    		PRINT 'Value of @conv_AccountId is: '+ CONVERT(varchar(255), @conv_AccountId)
     
    	--CLEF PRIMAIRE DE LA TABLE CUSTOMERADDRESSEBASE généré de façon unique aléatoirement (uniqueidentifier)
    		SET @conv_CustomerAddressId = NEWID()	
    		PRINT 'Value of @conv_CustomerAddressId  is: '+ CONVERT(varchar(255), @conv_CustomerAddressId)
     
    	-- POUR DEFINIR LE SECTEUR DE VENTE
    	if  @pays='Secteur 1 (loire EST, Rhône)' or @pays='Secteur 1 (loire EST)' or @pays='Secteur 1 (ST Etienne Sud)' or @pays='Secteur ST Etienne Sud'
    		SET @conv_pays = '3A3A2FBA-A991-DB11-8AEE-0015E9F01122' --Loire Secteur 1 
    		--PRINT 'le secteur est :'+CONVERT(varchar(255), @conv_pays)
    		--Print 'il correspond au '+@pays
     
    	if  @pays='Secteur 2 (Loire OUEST,Puy de Dôme)' or @pays='Secteur 2 (ST Etienne Nord)' or @pays='Secteur 2 (Loire OUEST,Puy de Dôme)' or @pays='Secteur ST Etienne Nord'
    		SET @conv_pays = 'A44E7BE5-A991-DB11-8AEE-0015E9F01122' --Loire Secteur 2
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 3 (Loire NORD)'
    		SET @conv_pays = 'D2CA3902-D291-DB11-8AEE-0015E9F01122' --Loire Secteur 3
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 4 (Hte Loire EST)'
    		SET @conv_pays = 'CA8D82D9-5FE7-DB11-9FAB-0015E9F01122' --Haute-Loire Secteur 4
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 5 (Hte Loire CENTRE)'
    		SET @conv_pays = '72B9D2E2-5FE7-DB11-9FAB-0015E9F01122' --Haute-Loire Secteur 5
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 6 (Hte Loire OUEST)'
    		SET @conv_pays = '3C8401EC-5FE7-DB11-9FAB-0015E9F01122' --Haute-Loire Secteur 6
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 7 (Rhône)'
    		SET @conv_pays = '10336DCF-74EE-DB11-9FAB-0015E9F01122' --Rhone Secteur 7
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='FR08304505050' or @pays='Secteur 9 (autres départements)'
    		SET @conv_pays = 'C9560984-74EE-DB11-9FAB-0015E9F01122' --autres departements Secteur 9
    		-- 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	--POUR DEFINIR LE COMPTE PARENT
    	if @Type_personne = 0
    		SET @nom_parent = 'compte client général : 401000'
    	if @Type_personne = 0		
    		SET @idnom_parent='9AF3FE84-7BF9-DB11-8E15-0015E9F01122'
    	if @Type_personne = 1
    		SET @nom_parent = 'compte fournisseur général : 411000'
    	if @Type_personne = 1
    		SET @idnom_parent='E48C5C8F-7BF9-DB11-8E15-0015E9F01122'
     
    	--POUR DEFINIR LES TARIFS
    	if @un_tarif=1
    		SET @nom_tarif='Prix de vente HT'
    		SET @id_tarif='E4A28B1D-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=2
    		SET @nom_tarif='Prix de vente TTC'
    		SET @id_tarif='D81A6627-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=3
    		SET @nom_tarif='Prix Public HT'
    		SET @id_tarif='3AC15232-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=4
    		SET @nom_tarif='Prix Public TTC'
    		SET @id_tarif='D076A142-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=5
    		SET @nom_tarif='Internet HT'
    		SET @id_tarif='30E6354D-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=6
    		SET @nom_tarif='Internet TTC'	
    		SET @id_tarif='9E7CD157-FAF3-DB11-9FAB-0015E9F01122'
     
    	--POUR DEFINIR LE TYPE DE COMPTE
    	if @type_personne=0
    		SET @type_pers_char='Client'
    	if @type_personne=1
    		SET @type_pers_char='Fournisseur'
    	if @type_personne=2
    		SET @type_pers_char='Salarié'
    	if @type_personne=3
    	 	SET @type_pers_char='Autres'	
     
    	--POUR DEFINIR LA CATEGORIE COMPTABLE
    	if @catcomptaInt=1 	
    		SET @catcomptaChar='Secteur vente 42'
    	if @catcomptaInt=1 
    		SET @catcomptaInt=42
    	if @catcomptaInt=2	
    		SET @catcomptaChar='Secteur vente 43'
    	if @catcomptaInt=2
    		SET @catcomptaInt=43	
    	if @catcomptaInt=3 
    		SET @catcomptaChar='Secteur HT export'
    	if @catcomptaInt=3 
    		SET @catcomptaInt=0
    	if @catcomptaInt=4 
    		SET @catcomptaChar='Secteur vente 69'
    	if @catcomptaInt=4 
    		SET @catcomptaInt=69	
     
    	--POUR DEFINIR LE PROPRIETAIRE DES DONNEES ET SA DIVISION ASSOCIEE
    	SET @un_utilisateur='DOMAMIELEC\CRMadmin'
    	SET @id_utilisateur='50F3DA06-2E90-DB11-996E-0015E9F01122'
    	SET @businness_unit='CA227FFA-2D90-DB11-996E-0015E9F01122'
     
    --TANT QUE LE CURSEUR CONTIENT DES DONNEES
    WHILE @@FETCH_STATUS = 0
    BEGIN	
     
    	--LANCEMENT DU CURSEUR
    	PRINT 'Le nom du client avant copie est :'+@num
    	FETCH NEXT FROM un_curseur INTO @id, @num, @numpayeur, @intitule, @contact, @adresse, @complement, @code_postal, @ville, @pays, @telephone, @fax, @mail, @site, @catcomptaInt, @type_personne, @un_tarif,@un_representant
    	PRINT 'Le nom du client apres copie est :'+@num
     
    	--INCREMENTATION DE L'IDENTIFIANT
    	SET @identifiant_client=@identifiant_client+1 
     
    	--CLEF PRIMAIRE DE LA TABLE ACCOUNTBASE généré de façon unique aléatoirement (uniqueidentifier)
    		SET @conv_AccountId = NEWID()
    		PRINT 'Value of @conv_AccountId is: '+ CONVERT(varchar(255), @conv_AccountId)
     
    	--CLEF PRIMAIRE DE LA TABLE CUSTOMERADDRESSEBASE généré de façon unique aléatoirement (uniqueidentifier)
    		SET @conv_CustomerAddressId = NEWID()	
    		PRINT 'Value of @conv_CustomerAddressId  is: '+ CONVERT(varchar(255), @conv_CustomerAddressId)
     
    	-- POUR DEFINIR LE SECTEUR DE VENTE
    	if  @pays='Secteur 1 (loire EST, Rhône)' or @pays='Secteur 1 (loire EST)' or @pays='Secteur 1 (ST Etienne Sud)' or @pays='Secteur ST Etienne Sud'
    		SET @conv_pays = '3A3A2FBA-A991-DB11-8AEE-0015E9F01122' --Loire Secteur 1 
    		--PRINT 'le secteur est :'+CONVERT(varchar(255), @conv_pays)
    		--Print 'il correspond au '+@pays
     
    	if  @pays='Secteur 2 (Loire OUEST,Puy de Dôme)' or @pays='Secteur 2 (ST Etienne Nord)' or @pays='Secteur 2 (Loire OUEST,Puy de Dôme)' or @pays='Secteur ST Etienne Nord'
    		SET @conv_pays = 'A44E7BE5-A991-DB11-8AEE-0015E9F01122' --Loire Secteur 2
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 3 (Loire NORD)'
    		SET @conv_pays = 'D2CA3902-D291-DB11-8AEE-0015E9F01122' --Loire Secteur 3
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 4 (Hte Loire EST)'
    		SET @conv_pays = 'CA8D82D9-5FE7-DB11-9FAB-0015E9F01122' --Haute-Loire Secteur 4
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 5 (Hte Loire CENTRE)'
    		SET @conv_pays = '72B9D2E2-5FE7-DB11-9FAB-0015E9F01122' --Haute-Loire Secteur 5
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 6 (Hte Loire OUEST)'
    		SET @conv_pays = '3C8401EC-5FE7-DB11-9FAB-0015E9F01122' --Haute-Loire Secteur 6
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='Secteur 7 (Rhône)'
    		SET @conv_pays = '10336DCF-74EE-DB11-9FAB-0015E9F01122' --Rhone Secteur 7
    		--PRINT 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	if @pays='FR08304505050' or @pays='Secteur 9 (autres départements)'
    		SET @conv_pays = 'C9560984-74EE-DB11-9FAB-0015E9F01122' --autres departements Secteur 9
    		-- 'le secteur est :'+ CONVERT(varchar(255), @conv_pays)	
    		--Print 'il correspond au '+@pays
     
    	--POUR DEFINIR LE COMPTE PARENT
    	if @Type_personne = 0
    		SET @nom_parent = 'compte client général : 401000'
    	if @Type_personne = 0		
    		SET @idnom_parent='9AF3FE84-7BF9-DB11-8E15-0015E9F01122'
    	if @Type_personne = 1
    		SET @nom_parent = 'compte fournisseur général : 411000'
    	if @Type_personne = 1
    		SET @idnom_parent='E48C5C8F-7BF9-DB11-8E15-0015E9F01122'
     
    	--POUR DEFINIR LES TARIFS
    	if @un_tarif=1
    		SET @nom_tarif='Prix de vente HT'
    		SET @id_tarif='E4A28B1D-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=2
    		SET @nom_tarif='Prix de vente TTC'
    		SET @id_tarif='D81A6627-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=3
    		SET @nom_tarif='Prix Public HT'
    		SET @id_tarif='3AC15232-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=4
    		SET @nom_tarif='Prix Public TTC'
    		SET @id_tarif='D076A142-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=5
    		SET @nom_tarif='Internet HT'
    		SET @id_tarif='30E6354D-FAF3-DB11-9FAB-0015E9F01122'
    	if @un_tarif=6
    		SET @nom_tarif='Internet TTC'	
    		SET @id_tarif='9E7CD157-FAF3-DB11-9FAB-0015E9F01122'
     
    	--POUR DEFINIR LE TYPE DE COMPTE
    	if @type_personne=0
    		SET @type_pers_char='Client'
    	if @type_personne=1
    		SET @type_pers_char='Fournisseur'
    	if @type_personne=2
    		SET @type_pers_char='Salarié'
    	if @type_personne=3
    	 	SET @type_pers_char='Autres'	
     
    	--POUR DEFINIR LA CATEGORIE COMPTABLE
    	if @catcomptaInt=1 	
    		SET @catcomptaChar='Secteur vente 42'
    	if @catcomptaInt=1 
    		SET @catcomptaInt=42
    	if @catcomptaInt=2	
    		SET @catcomptaChar='Secteur vente 43'
    	if @catcomptaInt=2
    		SET @catcomptaInt=43	
    	if @catcomptaInt=3 
    		SET @catcomptaChar='Secteur HT export'
    	if @catcomptaInt=3 
    		SET @catcomptaInt=0
    	if @catcomptaInt=4 
    		SET @catcomptaChar='Secteur vente 69'
    	if @catcomptaInt=4 
    		SET @catcomptaInt=69	
     
    --INSERTION DANS LES TABLES DE LA CRM
    insert into AMIELEC_MSCRM.dbo.AccountBase(AccountId,OwningBusinessUnit,AccountCategoryCode,TerritoryId,DefaultPriceLevelId,
    CustomerSizeCode,PreferredContactMethodCode,PreferredAppointmentDayCode,PreferredAppointmentTimeCode,CustomerTypeCode,AccountRatingCode,IndustryCode,TerritoryCode,
    AccountClassificationCode,BusinessTypeCode,OwningUser,OriginatingLeadId,PrimaryContactId,Name,AccountNumber,Revenue,NumberOfEmployees,Description,SIC,OwnershipCode,MarketCap,
    SharesOutstanding,TickerSymbol,StockExchange,WebSiteURL,FtpSiteURL,EMailAddress1,EMailAddress2,EMailAddress3,Telephone1,DoNotPhone,DoNotFax,DoNotEMail,DoNotSendMM,DoNotPostalMail,DoNotBulkEMail,DoNotBulkPostalMail,
    Telephone2,Fax,Telephone3,CreditLimit,CreditOnHold,ParentAccountId,StatusCode,StateCode,DeletionStateCode)
    values(@conv_AccountId,@businness_unit,@catcomptaInt,@conv_pays,@id_tarif,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,@id_utilisateur,
    Null,Null,@num,@numpayeur,Null,Null,@intitule,Null,Null,Null,Null,Null,Null,@site,Null,@mail,Null,Null,@telephone,0,0,0,0,0,0,Null,Null,@fax,Null,Null,Null,@idnom_parent,1,0,0)
     
    insert into AMIELEC_MSCRM.dbo.CustomerAddressBase(Name,Line1,PostalCode,City,ObjectTypeCode,DeletionStateCode,CustomerAddressId,ParentId,AddressNumber)
    values(@adresse,@complement,@code_postal,@ville,1,0,@conv_CustomerAddressId,@conv_AccountId,1)
     
    insert into AMIELEC_MSCRM.dbo.AccountExtensionBase(AccountId,New_Identifiant,New_TypePersonne,New_categorie_comptable,New_representant,New_prenom_representant,New_nom_representant,New_contacts,New_societe,New_descriptif)
    values(@conv_AccountId,@identifiant_client,@type_pers_char,@catcomptaChar,@un_representant,null,null,@contact,@num,@intitule)
    --AddressNumber : permet de définir le numéro de propriété de l'adresse, 1: information générale.
     
    END
    --FERMETURE ET DESALLOCAION DU CURSEUR
    CLOSE un_curseur
    DEALLOCATE un_curseur

  13. #13
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    si ta proc est du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE PROCEDURE copie_client(@id_client int OUTPUT)
    tu dois dans ton script général déclarer la variable et mettre output après l'exec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    CREATE procedure creation
    AS
    begin
    declare @id_client int
    exec copie_client @id_client output -- Procédure client
     
    exec create_proc2 -- Procédure client2
    exec create_proc3 -- Procédure contact
    exec create_proc4 -- Procédure contact2
    exec create_proc5 -- Procédure contact3
    --exec create_proc6.sql -- Procédure prospect
    exec create_proc7 -- Procédure devis
    exec create_proc8 -- Procédure devis2
    exec create_proc9 -- Procédure devis3
    exec create_proc10 -- Procédure devis4
    end

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    je me suis mal exprimé je crois dsl.
    j'ai déja fait une procédure qui execute mes procédure préalablement créér voila le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    -- Déclaration des variables
    declare @client int,@contact int,@devis int,@facture int
    -- Initialisation des variables au ombre de champs présents dans les bases SAGE
    select @client= COUNT(CT_Num)FROM ESSAIGAMIELEC.dbo.F_COMPTET
    select @contact= COUNT(CT_Num) FROM ESSAIGAMIELEC.dbo.F_CONTACTT
    select @devis= COUNT(*) from AMIELEC_MSCRM.dbo.QuoteExtensionBase
    select @facture= Count(cbMarq) from ESSAIGAMIELEC.dbo.F_DOCLIGNE where DO_Domaine=0 and DO_Type=1
    --EXECUTION DES PROCEDURES	
    exec copie_client @id_client=@client 		-- Procedure principale pour les clients
    exec copie_client2 @id_client=@client		-- Mise à jour du representant client
    exec copie_contact @id_contact=@contact 	-- Procedure principale pour les contacts
    exec copie_contact2 @id_client=@client		-- Procedure correspondance table client et table contact
    exec copie_contact3 @id_contact=@contact	-- Procedure correspondance table client et table contact
    exec copie_devis @id_devis=425000 			-- Procedure principale pour les devis
    -- Remarque: Lorsque id_devis>=425000 on se trouve dans les devis effectué depuis la fin de l'année 2006
    exec copie_devis2 @id_devis=1				-- Mise à jour du code Etat
    exec copie_devis3 @id_client=@client		-- Procedure correspondance table client et table devis
    exec copie_devis4 @id_devis=devis			-- Procedure correspondance table client et table devis
    exec copie_cmd @id_cmd=0					-- Procedure principale pour les commandes
    exec copie_cmd2 @id_client=@client			-- Procedure correspondance table client et table commande
    exec copie_cmd3 @id_cmd=0					-- Procedure correspondance table client et table commande
    exec copie_facture @id_facture=1			-- Procedure principale pour les factures
    exec copie_facture2 @id_client=@client		-- Procedure correspondance table client et table facture
    exec copie_facture3 @id_facture=facture		-- Procedure correspondance table client et table facture
    Maintenant jaimerais bien faire une procedure qui m'execute la création de mes autres procédures au cas ou celle ci ai été dropée par exemple.
    Pour m'expliquer clairement:
    etape 1 : je drop toute mes procédures
    etape 2 : je recréé toutes mes procedures
    etape 3 : je delete l'ensemble des données
    etape 4 : je reinsert toute mes données

    Les étape 1 3 et 4 fonctionnent seul l'etape 2 ne fonctionne pas pour le moment!

    Je ne sais pa si c'est plus clair comme ca?

  15. #15
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    est ce que tu mets bien un go après chaque création

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    if not exists(select 1 from sysobjects where name='proc1')
    create proc proc1
    as
    begin
    ...
    end
    GO
    if not exists(select 1 from sysobjects where name='proc2')
    create proc proc2
    as
    begin
    ...
    end
    GO

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    Non je ne savais pas qu'il fallait mettre l'instruction 'go' apres chaque procedures, je vais essayer et je te tiens au courant.
    En tous cas je te remercie vraiment pour ta disponibilté et tes reponses rapides et precises.
    Merci beaucoup

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    Ca y est j'ai tester effectivement il suffisait d'ajouter 'go' aprés chaque procedure.
    Par contre les conditions if avant chaque create ne fonctionne pas et j'ai les deux erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Serveur : Msg 156, Niveau 15, État 1, Ligne 2
    Syntaxe incorrecte vers le mot clé 'PROCEDURE'.
     
    Serveur : Msg 137, Niveau 15, État 1, Ligne 12
    La variable '@id_client' doit être déclarée.
    On dirait que l'instruction create doit ere la premiere instruction ecrite sinon ca ne fonctione pas.
    Ce n'est pas trés grave mais je le signale au cas ou si d'autre relise le post.

    Merci encore pour ton aide Serge!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/10/2013, 18h27
  2. code qui s'execute plusieurs fois
    Par khelif dans le forum JBuilder
    Réponses: 1
    Dernier message: 10/03/2005, 21h56
  3. [nouveau] saisir plusieurs espace de suite ou tabuler
    Par siuol dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 28/02/2005, 12h32
  4. [Debutant][SQL] Execution de procedures stockées
    Par Yannos94 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 18h09
  5. [.bat][FOR][IF]executer plusieurs commandes a la suite
    Par ¤FRIX¤ dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 23/03/2004, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo