Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/06/2008, 16h34   #1
Membre régulier
 
Inscription : mars 2004
Messages : 126
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mars 2004
Messages : 126
Points : 72
Points : 72
Envoyer un message via MSN à caradhras
Par défaut From (nom table contenu dans une variable)

Bonjour à tous,

Alors voilà, je pense que tout (ou presque) est dans le titre. Voici en gros ce que j'ai :

Code :
1
2
3
4
5
6
7
8
 
DECLARE @Table1 AS varchar(50)
DECLARE @date AS varchar(10)
SET @date = SUBSTRING(CONVERT(varchar(20), CURRENT_TIMESTAMP, 102), 1, 4)
SET @date = @date + SUBSTRING(CONVERT(varchar(20), CURRENT_TIMESTAMP, 102), 6, 2) 
SET @date = @date + SUBSTRING(CONVERT(varchar(20), CURRENT_TIMESTAMP, 102), 9, 2)
-- @date contient maintenant quelque chose comme 20080623
SET @Table1 = 'Test_'+@date+'_9.dbo.MaxTemps'
Et je voudrais pouvoir faire ce genre d'appel :

Code :
1
2
 
SELECT * FROM @Table1
La variable @Table contient bien une table existante. Mais malgré mes recherches, impossible de trouver le moyen de faire une selection sur cette table avec ce genre d'appel. Une idée?

PS: Message d'erreur de SQL server : Msg 1087, Level 15, State 2, Line 9
La variable de table "@Table1" doit être déclarée.
caradhras est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 17h12   #2
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 782
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 782
Points : 1 853
Points : 1 853
Ce n'est pas très propre mais quelque chose comme ça devrait fonctionner :
Code :
1
2
3
4
DECLARE @t VARCHAR(MAX)
SET @NomTable ='Matable'
 
EXEC ('select * from ' + @NomTable)
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 17h14   #3
Membre régulier
 
Inscription : mars 2004
Messages : 126
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mars 2004
Messages : 126
Points : 72
Points : 72
Envoyer un message via MSN à caradhras
C'est aussi la seule solution que j'ai trouvé pour le moment mais c'est vrai que s'il y a mieux, je suis preneur...
caradhras est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 17h16   #4
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 782
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 782
Points : 1 853
Points : 1 853
Citation:
Envoyé par caradhras Voir le message
C'est aussi la seule solution que j'ai trouvé pour le moment mais c'est vrai que s'il y a mieux, je suis preneur...
Attendre SQL 2008, ce genre de chose y est autorisé
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h18.


 
 
 
 
Partenaires

Hébergement Web