procedure curseur et update
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é:
Code:
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()) |
Ensuite après avoir effectuer les instructions open puis fetch du curseur j'effectue des updates sur la table AccountBase :
Code:
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 |
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!
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.