J'ai une base de données d'application COTS qui crée une nouvelle table chaque semaine qui suit une convention de dénomination spécifique et contient toujours les mêmes colonnes. J'ai écrit une requête pour sélectionner les tables dans un certain intervalle de temps:SQL Feed Résultats de la requête dans Union All Statement
DECLARE @today VARCHAR(8)
SET @today = CONVERT(VARCHAR(8),GETDATE(),112)
DECLARE @monthold VARCHAR(8)
SET @monthold = CONVERT(VARCHAR(8),dateadd(day,-31,@today),112)
SELECT name
FROM sys.tables
WHERE name <= 'Event_Audit'+ @today AND name >= 'Event_Audit'+ @monthold
AND name like 'Event_Audit%'
ORDER BY name DESC
Maintenant, je suis à la recherche d'un moyen d'avoir un appel de requête chacune des tables qui est sélectionnée pour agréger les données. Cela sera utilisé pour les rapports SSRS.
Quelque chose comme ça où table1, table2, etc. à travers toutes les tables incluses va se peuplé (que ce soit 4, 5 ou plus):
SELECT *
FROM table1
UNION ALL
SELECT *
FROM table2
UNION ALL
...
ORDER BY EVENT_DATE DESC
Je ne peux pas créer des vues, de nouvelles tables ou apporter des modifications aux tables existantes.
Vous aurez besoin d'utiliser SQL dynamique, mais quel est le problème réel que vous avez? Avez-vous essayé d'utiliser sp_executesql? –
J'essayais d'utiliser T-SQL. Je ferai d'autres lectures sur SQL dynamique et sp_executesql. – CPickler
Tous les articles que j'ai vus jusqu'à présent font référence à la création d'une nouvelle table ou d'une table temporaire que je ne peux pas faire. Les comptes ont uniquement un accès en lecture à la base de données SQL pour extraire des données de rapport. – CPickler