bonjour à tous,
J'ai un problème que je n'arrive pas à resoudre.
Je vais essayer de l'expliquer le plus clairement possible.
J'ai une première table AccountBase que je souhaite modifier en fonction d'une autre F_COMPTET.
Quand quelqu'un modifie F_COMPTET, AccountBase qui contient a peu de chose prés les même données sera elle aussi modifiée.
Pour une raison x je ne peut pas utiliser de triggers.
Je créé un curseur sur F_COMPTET qui me permet de savoir si un de ces champs à été modifié:
Ensuite après avoir effectuer les instructions open puis fetch du curseur j'effectue des updates sur la table AccountBase :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 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 GAMIELEC.dbo.F_COMPTET where @id_client=0 and CT_Intitule not like'%*%' and DATEPART(year,CBModification) = DATEPART(year,GETDATE()) AND DATEPART(month,CBModification) = DATEPART(month,GETDATE()) AND DATEPART(day,CBModification) = DATEPART(day,GETDATE())
Le problème ce que lorsque j'execute ma procédure l'objet un_curseur ne semble pas être reconnu. Je pense que ma syntaxe n'est pas bonne dans mes from!
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 Update AMIELEC_MSCRM.dbo.AccountBase SET AccountCategoryCode=@catcomptaInt,TerritoryId=@conv_pays,DefaultPriceLevelId=@id_tarif, OwningUser=@id_utilisateur,AccountNumber=@numpayeur,Description=@intitule,WebSiteURL=@site,EMailAddress1=@mail, Telephone1=@telephone,Fax=@fax,ParentAccountId=@idnom_parent,StatusCode=1,StateCode=0,DeletionStateCode=0 FROM AMIELEC_MSCRM.dbo.AccountBase CRM JOIN un_curseur ON CRM.Name=un_curseur.CT_Num Update AMIELEC_MSCRM.dbo.CustomerAddressBase SET Name=@adresse,Line1=@complement,PostalCode=@code_postal,City=@ville,ObjectTypeCode=1,DeletionStateCode=0,AddressNumber=1 FROM AMIELEC_MSCRM.dbo.CustomerAddressBase CRM JOIN un_curseur ON CRM.ParentId=un_curseur.AccountId Update AMIELEC_MSCRM.dbo.AccountExtensionBase SET New_Identifiant=@identifiant_client,New_TypePersonne=@type_pers_char,New_categorie_comptable=@catcomptaChar, New_representant=@un_representant,New_contacts=@contact,New_societe=@num,New_descriptif=@intitule FROM AMIELEC_MSCRM.dbo.AccountExtensionBase CRM JOIN un_curseur ON CRM.New_societe=un_curseur.CT_Num
Comment faire pour joindre le curseur que j'ai crée dans mes update???
Jespere avoir été clair, merci d'avance a ceux qui pourront me répondre.
Partager