Erreur de syntaxe dans procédure stockée

bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006 - 22 juin 2006 à 15:25
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006 - 22 juin 2006 à 16:30
salut, c'est encore moi !
j'ai une erreur de syntaxe dans ma procédure : j'ai essayé qqchose mais ca reste incorrect...
il s'agit d'inserer dans la table proposer_role via la view roles_selectionnes (qui representent les roles à inserer dans la table proposer_role) tous les id_role associé au dernier id_form inséré (la table proposer_role ne contient que ces 2 cles etrangeres)
voici la procedure :
CREATE PROCEDURE InsertForm  @nom_form varchar(50), @id_logi bigint, @id_serv bigint,  @reso_form bit, @imp_form bit,
    @etic_form bit, @dept_form bit, @email_form bit, @w2000_form bit, @exp_form bit
AS
BEGIN TRANSACTION
DECLARE @id bigint, @cpt int, @id_role bigint, @id_form bigint
INSERT INTO [formulaire] ([nom_form], [id_logi], [id_serv], [reso_form], [imp_form], [etic_form], [dept_form], [email_form], [w2000_form], [exp_form] )
VALUES (@nom_form, @id_logi, @id_serv, @reso_form, @imp_form, @etic_form, @dept_form, @email_form, @w2000_form, @exp_form)
SET @id=@@identity
SELECT COUNT(id_role) AS nblignes FROM roles_selectionnes
for(@i=0; @i<nblignes;  @i++)
INSERT INTO proposer_role (id_role, id_form) VALUES (@id_role, @id_form)
COMMIT TRANSACTION
GO
par avance, merci

1 réponse

bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
22 juin 2006 à 16:30
j'ai corrigé l'erreur de syntaxe mais aucune insertion ne se passe dans la table proposer_role  vous pouvez vraiment pas m'aider
CREATE PROCEDURE InsertForm  @nom_form varchar(50), @id_logi bigint, @id_serv bigint,  @reso_form bit, @imp_form bit,
    @etic_form bit, @dept_form bit, @email_form bit, @w2000_form bit, @exp_form bit
AS
BEGIN TRANSACTION


DECLARE @id bigint
DECLARE @nblignes bigint


INSERT INTO [formulaire] ([nom_form], [id_logi], [id_serv], [reso_form], [imp_form], [etic_form], [dept_form], [email_form], [w2000_form], [exp_form] )
VALUES (@nom_form, @id_logi, @id_serv, @reso_form, @imp_form, @etic_form, @dept_form, @email_form, @w2000_form, @exp_form)


SET @id=@@identity


SELECT COUNT(id_role) AS nblignes FROM role


WHILE @nblignes IS NOT NULL
begin
 INSERT INTO proposer_role (id_role, id_form) VALUES (@@identity, @id)
 SET @nblignes=@nblignes-1
end


COMMIT TRANSACTION
GO
0
Rejoignez-nous