Bonjour,

Pour pouvoir récupérer l'identité auto-incrémentée d'un INSERT je passe par une procédure stockée dans la quelle je fais :
- la requete INSERT
- un SELECT SCOPE_IDENTITY();

Le problème est que je suis obligé de créer sur le serveur sql, autant de procédure stockée que je n'ai de tables.

Donc la question est de savoir s'il est possible de ne faire qu'une seule procédure stockée dans laquelle je passe en paramètre ma requête Sql toute entière..

quelque chose comme ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
CREATE PROCEDURE p_recup_autoincrement 
  @requeteSql text,
  @nouvelId int output
AS
  @requeteSql;
  SET @nouvelId = SCOPE_IDENTITY();
GO
mais à la création de la procédure sur le serveur ça ne passe pas j'ai l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
The following error occured while executing the query:
Server: Msg 102, Level 15, State 1, Line 5
Syntaxe incorrecte vers '@requeteSql'.
Avez vous une idée de comment je pourrais faire ?

d'avance merci