How to dynamically select tables and columns in SQL Server? -


i trying create sql code in sql server dynamically selects tables in specific database , each column in each table, counts number of missing values , non-null values. want result inserted table.

is there way can without manually changing column names each:

table name - column selection

i have teradata code same tried convert sql server code. unable dynamic allocation , insertion parts right.

insert temp values (select  ''camp'',     rtrim(''' || tablename || '''),     rtrim(''' || columnname || '''),     rtrim(''' || columnformat || '''),     count(1),     count(rtrim(upper(case when ' || columnname || '='''' null else '|| columnname ||' end))),     (cast (count(rtrim(upper(case when  ' || columnname || '='''' null else  ' || columnname || ' end))) float) / (cast (count(1) float))) * 100,     count(distinct rtrim(upper(case when ' || columnname || '='''' null else '|| columnname ||' end))),     min(rtrim(upper(case when ' || columnname || '='''' null else '|| columnname ||' end))),     max(rtrim(upper(case when ' || columnname || '='''' null else '|| columnname ||' end))),     min(len(rtrim(upper(case when ' || columnname || '='''' null else '|| columnname ||' end)))),     max(len(rtrim(upper(case when ' || columnname || '='''' null else '|| columnname ||' end))))    ' || tablename ||') 

any on front great! thanks!

not sure if need union or join, in either case can use three-part name object in other database if using multi-database:

use database1; // database name go create view dbo.myview     select columns dbo.table1     union     select columns database2.dbo.table2; //second database go  select * dbo.myview // getting data view 

hope helps


Comments