Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

cara membuat skema XML dari database yang ada di SQL Server 2008

Jika Anda hanya membutuhkan skema xml tabel, kueri dengan ini:

select top 0 * FROM daTable FOR XML AUTO,XMLSCHEMA

Jika Anda memerlukan nama tabel dan kolom untuk membuat representasi database Anda dan bagaimana tabel terhubung, Anda dapat menggunakan sesuatu seperti ini:

SELECT
s.name as '@Schema'
,t.name as '@Name'
,t.object_id as '@Id'
,(
    SELECT c.name as '@Name'
    ,c.column_id as '@Id'
    ,IIF(ic.object_id IS NOT NULL,1,0) as '@IsPrimaryKey'
    ,fkc.referenced_object_id as '@ColumnReferencesTableId'
    ,fkc.referenced_column_id as '@ColumnReferencesTableColumnId'
    FROM sys.columns as c
    LEFT OUTER JOIN sys.index_columns as ic
        ON c.object_id = ic.object_id
        AND c.column_id = ic.column_id
        AND ic.index_id = 1
    LEFT OUTER JOIN sys.foreign_key_columns as fkc
        ON c.object_id = fkc.parent_object_id
        AND c.column_id = fkc.parent_column_id
    WHERE c.object_id = t.object_id
    FOR XML PATH ('Column'),TYPE
)
FROM sys.schemas as s
INNER JOIN sys.tables as t
    ON s.schema_id = t.schema_id
FOR XML PATH('Table'),ROOT('Tables')

Biarkan aplikasi Anda menggunakan ColumnReferencesTableId dan ColumnReferencesTableColumnId untuk mendapatkan relasi tabel. Anda juga dapat bergabung kembali ke kolom dan tabel yang dirujuk jika Anda lebih suka menuliskan nama mereka, tetapi saya pikir ID mereka sudah cukup.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara meneruskan array string dalam parameter SQL ke klausa IN dalam SQL

  2. Gunakan @@IDENTITY untuk Mengembalikan Nilai Identitas yang Disisipkan Terakhir di SQL Server

  3. Bagaimana Anda melakukan Versioning di Nhibernate?

  4. Bagaimana cara mengizinkan parameter daftar drop-down di SSRS memiliki nilai default -- All -- ?

  5. Memutar tabel bersama dengan jumlah nilai kolom saat tipe kolom adalah nvarchar