SQL Server - TSQL: Comment passer en paramètre le nom de la table dans l'instruc

Signaler
Messages postés
1
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
5 janvier 2005
-
Messages postés
3
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
21 octobre 2008
-
bonjour, comment passer en paramètre le nom de la table dans l'instruction CREATE TABLE?

merci d'avance

3 réponses

Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
5
le plus simple est de créer une variable de type varchar(8000) et tu concatenes le paramètre transmis avec ton CREATE TABLE.

Par exemple :
-------------------------
...
@TonParametre
...
DECLARE @MaRequetteSQL VARCHAR(8000)

SET @MaRequetteSQL = "CREATE TABLE '+ @TonParametre

EXEC @MaRequetteSQL
-------------------------

Romelard Fabrice (Alias F___)
Messages postés
48
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
10 février 2006

Salut Fabrice,



J'ai un problème dans le même genre sauf que c'est pour un INSERT



J'ai essayé ta technique mais j'ai une erreur:



" The name 'INSERT INTO [Test Import]

SELECT
[Contact_ID],[First_Name],[Last_Name],[Address],[Zip_Code],[telephone],[UpperTime],[LowerTime],[Switch_Result],[Agent_Result],[Result_TS],[Retry_Count],[Retry_TS],[Retry_Username],[Retry_Number]

FROM [OUTSOURCINGCC]...ex#txt ' is not a valid identifier. "



Voici le code de ma procédure:








CREATE   PROCEDURE sp_import(

    @table NVARCHAR(4000)

)

AS





DECLARE @Requette VARCHAR(8000)



SET @Requette = 'INSERT INTO ['+@table + ']

SELECT
[Contact_ID],[First_Name],[Last_Name],[Address],[Zip_Code],[telephone],[UpperTime],[LowerTime],[Switch_Result],[Agent_Result],[Result_TS],[Retry_Count],[Retry_TS],[Retry_Username],[Retry_Number]

FROM [OUTSOURCINGCC]...ex#txt '





SET ANSI_NULLS ON

SET ANSI_WARNINGS ON





EXEC @Requette







Merci d'avance...
Messages postés
3
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
21 octobre 2008

Salut gorby69,
Je n'ai pas entièrement regardé ton code, j'ai peut être un élément de réponse.
Si tu te trouves sous sql server 2005, essayes la commande :
EXEC ( @[nom_de_ta_variable] ) n'oublie pas les parenthèses.

Bon code !

 !-) expchico