Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Effectuer l'union si la table avec ces noms existe

Enveloppez le code suivant dans la procédure stockée :

DECLARE @DynamicTSQLStatement NVARCHAR(MAX);

SELECT @DynamicTSQLStatement = STUFF
(
    (
        SELECT N' UNION ALL SELECT * FROM ' + '[' + SCHEMA_NAME([schema_id]) + '].[' + [name] + ']'
        FROM [sys].[tables]
        WHERE [name] LIKE 'TRNS%'
        FOR XML PATH(''), TYPE
    ).value('.', 'NVARCHAR(MAX)')
    ,1
    ,10
    ,''
);

EXEC sp_executesql @DynamicTSQLStatement;

Vous pouvez ajouter plus de filtres lorsque le nom de la table est extrait du [sys].[tables] vue.