Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Execute União se existir tabela com esses nomes


Envolva o seguinte código no procedimento armazenado:
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;

Você pode adicionar mais filtros quando o nome da tabela for extraído do [sys].[tables] Visão.