Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

तालिका डेटा का XML उत्पन्न करने के लिए SQL

आप information_schema.columns . का उपयोग कर सकते हैं और for xml path अपनी इच्छित संरचना प्राप्त करने के लिए इस तरह।

select
  'MyTable' as 'TABLE/@name',
  (select XMLCol as '*'
   from (select XMLCol
         from MyTable
           cross apply
            (select
               COLUMN_NAME as 'COL/@name',
               case COLUMN_NAME when 'FirstName' then FirstName end as COL,
               case COLUMN_NAME when 'LastName' then LastName end as COL
             from INFORMATION_SCHEMA.COLUMNS
             where TABLE_NAME = 'MyTable'
             for xml path(''), root('ROW'), type) as Row(XMLCol)
        ) as Rows
   for xml path(''), type) as 'TABLE'
for xml path('')

लेकिन आपके मामले में मुझे इसे गतिशील रूप से बनाने के अलावा और कोई विकल्प नहीं दिख रहा है।

declare @TableName varchar(50) = 'MyTable'

declare @ColList varchar(8000)
select @ColList = coalesce(@ColList+', ', '') + 'case COLUMN_NAME when '''+COLUMN_NAME+''' then '+COLUMN_NAME+' end as COL'
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = @TableName

declare @SQL varchar(max) = 
'select
  ''_TABLENAME_'' as ''TABLE/@name'',
  (select XMLCol as ''*''
   from (select XMLCol
         from _TABLENAME_
           cross apply
            (select
               COLUMN_NAME as ''COL/@name'',
               _COLLIST_
             from INFORMATION_SCHEMA.COLUMNS
             where TABLE_NAME = ''_TABLENAME_''
             for xml path(''''), root(''ROW''), type) as Row(XMLCol)
        ) as Rows
   for xml path(''''), type) as ''TABLE''
for xml path('''')'

set @SQL = replace(@SQL, '_TABLENAME_', @TableName)
set @SQL = replace(@SQL, '_COLLIST_', @ColList)

exec (@SQL)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सी # में एसक्यूएल परिभाषित फ़ंक्शन को कॉल करना

  2. SQL सर्वर (T-SQL) में HEX को INT में बदलने के 3 तरीके

  3. DISTINCT . के साथ COUNT(*) का चयन करना

  4. SQL के साथ बल्क रिकॉर्ड अपडेट

  5. क्वेरी के साथ मौजूदा तालिकाओं के लिए SQL बनाएँ स्क्रिप्ट बनाएँ