Guest User

Untitled

a guest
Jul 17th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. SELECT * FROM ( VALUES
  2. (256087,'MCD','217647-A33')
  3. ,(256526,'MCD','217647-A33')
  4. ,(256777,'HARP','217647-A33')
  5. ,(256794,'MCD','217647-A33')
  6. ,(256835,'MCD','217647-A33')
  7. ) VTE
  8. ([ID],[prod],[provn&qw])
  9.  
  10. DECLARE @QUERY VARCHAR(MAX);
  11. DECLARE @TBL VARCHAR(20) = '#TEMP1';
  12.  
  13. ;WITH CTE as
  14. (
  15. SELECT distinct t.name as SYStype, '['+C.name+']' COLNAME, C.max_length , column_id
  16. FROM tempdb.sys.columns C
  17. INNER JOIN sys.types T on T.system_type_id = C.system_type_id
  18. WHERE [object_id] = OBJECT_ID(N'tempdb..'+@TBL)
  19. AND t.name <> 'sysname'
  20. )
  21. ,LINES AS
  22. ( --CREATES SINGLE LINES
  23. SELECT distinct LN = concat('SELECT CONCAT('',('',', SUBSTRING((SELECT ','','',' +
  24. CASE WHEN SYStype in('nvarchar','varchar','datetime','time','date') THEN CONCAT('CASE WHEN ',COLNAME,' IS NULL THEN ''NULL'' ELSE CONCAT('''''''',',' REPLACE(' ,COLNAME,','''''''','''''''''''')',','''''''') END')
  25. ELSE CONCAT('CASE WHEN ',COLNAME,' IS NULL THEN ''NULL'' ELSE CAST(',COLNAME,' AS VARCHAR(20)) END') END +''
  26. --ELSE COLNAME END
  27. FROM CTE
  28. order by column_id FOR XML path (''), TYPE).value('.[1]', 'NVARCHAR(MAX)'),6,90000),','')'')',CHAR(10),' FROM '+@TBL)
  29. )
  30. select @QUERY=
  31. concat('SELECT ''SELECT * FROM ( VALUES ''',CHAR(10),'UNION ALL',CHAR(10),
  32. LN
  33. ,CHAR(10),'UNION ALL',CHAR(10),'SELECT '' ) VTE', CHAR(10),'(',
  34. (SELECT SUBSTRING((SELECT ','+COLNAME FROM CTE order by column_id FOR XML path (''), TYPE).value('.[1]', 'NVARCHAR(MAX)'),2,2000)) ,')''')
  35. FROM LINES
  36.  
  37. EXECUTE (@QUERY);
Add Comment
Please, Sign In to add comment