Bonjour à tous,
Cela fait un petit moment que je cherche et je n'ai pourtant rien trouvé, je m'en remet donc à vous:
Je voudrais faire en sorte de générer mon nom de table de manière automatique. En effet, je dois créer une requete attaquant des tables dont leurs noms changent tout les jour. Il serait sous la forme [instance].[dbo].[table] où [table] serait égal à [(chaine de caractères)+(date du jour)+(chaine de caractères)]
A l'heure actuelle j'ai une requete qui fonctionne tres bien:
J'ai le résultat attendu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT [JOB_NAME] ,[APPLICATION] ,[GROUP_NAME] ,CONVERT (datetime, [ODATE]) AS DATE ,[STATUS] FROM [aaa].[dbo].[A090625001_AJOB] WHERE CONVERT (char(6), [ODATE], 12) = (CONVERT (char(6), GETDATE(), 12)-1) AND [STATUS] = 'Ended Not OK' AND [APPLICATION] != 'TEST' AND [GROUP_NAME] != 'TEST'
J'ai donc remplacé mon [A090625001_AJOB] par 'A'+CONVERT(char(6), GETDATE(), 12)+'001_AJOB'. (Testé, cette synthaxe me donne bien A090625001_AJOB)
Je récupère l'erreur suivante:Msg 102, Level 15, State 1, Line 6. Incorrect syntax near 'A'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT [JOB_NAME] ,[APPLICATION] ,[GROUP_NAME] ,CONVERT (datetime, [ODATE]) AS DATE ,[STATUS] FROM [em630].[dbo].'A'+CONVERT(char(6), GETDATE(), 12)+'001_AJOB' WHERE CONVERT (char(6), [ODATE], 12) = (CONVERT (char(6), GETDATE(), 12)-1) AND [STATUS] = 'Ended Not OK' AND [APPLICATION] != 'TEST' AND [GROUP_NAME] != 'TEST'
Quelqu'un pourrait-il m'aider?
De plus, je dois faire la meme requete sur la table en j-1 (A090624001_AJOB).
Problème, lorsque j'execute une requete simple du type
j'ai l'erreur suivante:Msg 245, Level 16, State 1, Line 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part select 'A'+(CONVERT(char(6), GETDATE(), 12)-1)+'001_AJOB' AS test from [aaa].[dbo].[A090625001_AJOB]
Conversion failed when converting the varchar value 'A' to data type int.
Par avance, merci
Chris
Partager