OVH Cloud OVH Cloud

Nom d'une table en argument de stored proc

2 réponses
Avatar
Alain
Bonjour,

je voudrais utiliser, dans une procédure stockée, une requette de type
DELETE sur une table passée en argument.
exemple:
CREATE PROCEDURE PGProcxxx
@PszTable nvarchar(255),
@PszLot char(255),
@bTous INT,
@PNom_Operateur char(255)
AS

SET dateformat dmy
PRINT @PszTable
IF @bTous=0
BEGIN
DELETE FROM @PszTable WHERE NumLot=@Pszlot

ou le nom de la table est @pszTable.
mais ça ne marche pas, la déclaration en tant que nvarchar(255) ne doit pas
être correcte.
Quelle est la solution approprié dans ce cas?
Merci pour votre aide...
Alain

2 réponses

Avatar
Gilles
EXEC (cute) permet de lancer des requetes
@marequete = 'DELETE FROM ' + @PszTable + ' WHERE NumLot= ' + @Pszlot

EXECUTE( @marequete)

Gilles

"Alain" a écrit dans le message de news:

Bonjour,

je voudrais utiliser, dans une procédure stockée, une requette de type
DELETE sur une table passée en argument.
exemple:
CREATE PROCEDURE PGProcxxx
@PszTable nvarchar(255),
@PszLot char(255),
@bTous INT,
@PNom_Operateur char(255)
AS

SET dateformat dmy
PRINT @PszTable
IF @bTous=0
BEGIN
DELETE FROM @PszTable WHERE NumLot=@Pszlot

ou le nom de la table est @pszTable.
mais ça ne marche pas, la déclaration en tant que nvarchar(255) ne doit
pas
être correcte.
Quelle est la solution approprié dans ce cas?
Merci pour votre aide...
Alain


Avatar
Alain
c'est vrai, cela marche mieux comme ça.
Merci de votre aide

"Gilles" wrote:

EXEC (cute) permet de lancer des requetes
@marequete = 'DELETE FROM ' + @PszTable + ' WHERE NumLot= ' + @Pszlot

EXECUTE( @marequete)

Gilles

"Alain" a écrit dans le message de news:

> Bonjour,
>
> je voudrais utiliser, dans une procédure stockée, une requette de type
> DELETE sur une table passée en argument.
> exemple:
> CREATE PROCEDURE PGProcxxx
> @PszTable nvarchar(255),
> @PszLot char(255),
> @bTous INT,
> @PNom_Operateur char(255)
> AS
>
> SET dateformat dmy
> PRINT @PszTable
> IF @bTous=0
> BEGIN
> DELETE FROM @PszTable WHERE NumLot=@Pszlot
>
> ou le nom de la table est @pszTable.
> mais ça ne marche pas, la déclaration en tant que nvarchar(255) ne doit
> pas
> être correcte.
> Quelle est la solution approprié dans ce cas?
> Merci pour votre aide...
> Alain