Bonjour à tous, j'ai un problème avec une requète après pas de recherche sans réponse je me tourne vers vous. Ma base est une Workgroup Server Edition V8.1 sur un serveur windows 2003. Voici ma requète :

connect to Ma_Base user Mon_User using Mon_Password@
BEGIN ATOMIC
FOR pk_name AS
SELECT NAME FROM SYSIBM.SYSTABCONST WHERE TBNAME = 'Nom_Ma_Table' AND CONSTRAINTYP = 'F'
DO
ALTER TABLE Nom_Ma_Table DROP FOREIGN KEY pk_name.NAME;
END FOR;
END@

Sachant que le caractère de fin d'instruction est @.

Voici l'erreur retournée :

------------------------------ Commandes entrées ------------------------------
connect to Ma_Base user Mon_User using ********@
BEGIN ATOMIC
FOR pk_name AS
SELECT NAME FROM SYSIBM.SYSTABCONST WHERE TBNAME = 'Nom_Ma_Table' AND CONSTRAINTYP = 'F'
DO
ALTER TABLE Nom_Ma_Table DROP FOREIGN KEY pk_name.NAME;
END FOR;
END@

------------------------------------------------------------------------------
connect to Ma_Base user Mon_User using

Informations de connexion à la base de données

Serveur de base de données = DB2/NT 8.1.0
ID utilisateur SQL = ******
Alias local de la base de données = ******


BEGIN ATOMIC
FOR pk_name AS
SELECT NAME FROM SYSIBM.SYSTABCONST WHERE TBNAME = 'Nom_Ma_Table' AND CONSTRAINTYP = 'F'
DO
ALTER TABLE Nom_Ma_Table DROP FOREIGN KEY pk_name.NAME;
END FOR;
END
DB21034E La commande a été traitée comme une instruction SQL car il ne s'agit
pas d'une commande valide pour l'interpréteur de commandes. Le message SQL
suivant a été renvoyé lors de son traitement :
SQL0104N Une marque inattendue "ALTER TABLE Nom_Ma_Table DRO" figure à la
suite de "NSTRAINTYP = 'F' DO ". Parmi les marques attendues, on trouve :
"<compound_SQL_stmt>". LINE NUMBER=5. SQLSTATE=42601

SQL0104N Une marque inattendue "ALTER TABLE Nom_Ma_Table DRO" figure à la suite de "NSTRAINTYP = 'F'
DO
". Parmi les marques attendues, on trouve : "<compound_SQL_stmt>".

Explication:

Une erreur de syntaxe dans une instruction SQL a été détectée à
la marque indiquée à la suite du texte "<texte>". La zone
"<texte>" affiche les 20 caractères précédant le caractère
incorrect dans l'instruction SQL.

Pour aider le programmeur, une liste partielle de marques
correctes est fournie dans la zone SQLERRM de la structure SQLCA
sous la forme "<liste-marques>". Cette liste suppose que
l'instruction est correcte jusqu'à ce stade.

L'instruction ne peut pas être traitée.

Réaction de l'utilisateur:

Examinez et corrigez l'instruction à proximité de la marque
indiquée.

SQLCODE : -104

SQLSTATE : 42601

Voilà mes recherches non rien données, Merci pour votre aide.