DECLARE @columnList VARCHAR(8000)
SELECT @columnList = stuff((
SELECT ',' + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @currentTable
ORDER BY ORDINAL_POSITION
FOR XML path('')
), 1, 1, '')
DECLARE @valueList VARCHAR(8000)
SELECT @valueList = stuff((
SELECT '+'',''+ ' + CASE
WHEN DATA_TYPE = 'datetime' THEN '''"''+COALESCE(CONVERT(nvarchar, [' + COLUMN_NAME + '], 120),'''')+''"'''
WHEN DATA_TYPE = 'nvarchar' OR DATA_TYPE = 'varchar' OR DATA_TYPE = 'nchar' OR DATA_TYPE = 'char'
THEN '''"''+COALESCE(REPLACE([' + COLUMN_NAME + '],''"'',''""''),'''')+''"'''
ELSE 'COALESCE(CAST([' + COLUMN_NAME + '] AS nvarchar),'''')'
END
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @currentTable
ORDER BY ORDINAL_POSITION
FOR XML path('')
), 1, 5, '')
SET @valueList = 'SELECT ' + @valueList + ' AS [' + @columnList + '] FROM ' + @currentTable
--PRINT @valueList
EXEC (@valueList)