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

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

merci d'avance

3 réponses

cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
5 janv. 2005 à 23:11
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___)
0
cs_gorby69 Messages postés 48 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 10 février 2006
22 juin 2005 à 15:12
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...
0
ExpertChico Messages postés 3 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 21 octobre 2008
21 oct. 2008 à 08:19
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
0
Rejoignez-nous