Technical Article

Generating automatic select stmt for all columns

,


Here's how to use the derived table technique to generate an automatic script for selecting all columns in a table:

declare @tablename varchar(30) 
set @tablename  = 'products' 

SELECT stmt 
FROM ( 
        SELECT -1 AS pos, 'SELECT' AS stmt 
        UNION ALL 
        SELECT ORDINAL_POSITION, 
                CHAR(9) + char(9) + COL_NAME(OBJECT_ID(@tablename), ORDINAL_POSITION) + 
                CASE WHEN ORDINAL_POSITION < 
                                 (select count(*) from 
                                   INFORMATION_SCHEMA.columns 
                                  where table_name =  @tablename) THEN ',' ELSE '' END 
        FROM INFORMATION_SCHEMA.COLUMNS 
        WHERE TABLE_NAME = @tablename AND ORDINAL_POSITION < 
                              (select count(*) + 1 from 
                               INFORMATION_SCHEMA.columns 
                                where table_name =  @tablename) 
        UNION ALL 
        SELECT (select count(*) + 2 from 
                INFORMATION_SCHEMA.columns 
                where table_name =  @tablename), 'FROM ' + @tablename 
) AS st 
ORDER BY pos

Rate

2.5 (2)

You rated this post out of 5. Change rating

Share

Share

Rate

2.5 (2)

You rated this post out of 5. Change rating