Home How to loop a query in different databases in T-SQL?
 I have the following query that needs to be executed in different databases but table name and its structure is the same. --query to be executed select cust_num, name, credit_hold, credit_hold_reason, (case when credit_hold_reason = 'NP' then 'No payments' when credit_hold_reason = 'UK' then 'Unknown' when credit_hold_reason = 'BK' then 'Bankruptcy' end) as 'Type of credit hold reason', credit_hold_date, credit_limit from [database_01].[dbo].[custaddr] --- from [database_02].[dbo].[custaddr] --- from [database_03].[dbo].[custaddr] order by credit_hold_reason asc  As you see, I just need to change the name of the database or "loop" in some sort of variable that holds the name of the databases, i.e., tables_in_loop = ['[database_01].[dbo].[custaddr]', 'from [database_02].[dbo].[custaddr]', 'from [database_03].[dbo].[custaddr]']  When you have the name of the databases, a connection is generated to them and all these databases are in the same server. I do not have any approach or scratch code about this because this involves more depth in knowledge in SQL and unfortunately I am not an expert - yet. I read the following post SQL Server: how to get a database name as a parameter in a stored procedure and the approach to solve it seems similar here: declare @dbname nvarchar(255); set @dbname = 'db1'; if @dbname = 'db1' use db1; else if @dbname = 'db2' use db2;  but @dbname needs to increased to the next database and this is not specified in the link. Any help or code in here would be appreciated.