Как зациклить throguh таблиц в БД и установить union динамически в SQL server?
Я хочу перебирать таблицы в БД и динамически устанавливать объединение в Sql server.
Требуемый выходной запрос будет выглядеть следующим образом:
SELECT 'Account' ,(SELECT COUNT(*) FROM Account ) UNION ALL --SELECT 'ACCOUNT_20140528_BKP' ,(SELECT COUNT(*) FROM ACCOUNT_20140528_BKP ) --UNION ALL -- SELECT 'ACCOUNTBKP' ,(SELECT COUNT(*) FROM ACCOUNTBKP ) --UNION ALL SELECT 'AccountStatus' ,(SELECT COUNT(*) FROM AccountStatus )
Что я уже пробовал:
DECLARE @TableName Varchar(200) Declare @DateField Varchar(50) Declare @TableType char(1) DECLARE ARCHIVE CURSOR FOR SELECT TableName,DateField,TableType FROM dbo.Archive_config OPEN ARCHIVE fetch next from ARCHIVE into @TableName, @DateField,@TableType WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @query AS VARCHAR(MAX)='SELECT '+@TableName+' AS Val' DECLARE @query1 AS VARCHAR(MAX)='SELECT '+@TableName+' AS Val' PRINT (@query+' UNION '+@query1) --EXEC(@query+' UNION ALL '+@query1) END