以XML格式检索MS SQL数据库或表格结构

有没有办法导出MS 2000 SQL Server格式良好的XML数据库模式。 我正在寻找的结构不是数据和越详细越好。 XML可以用于迁移过程。 我更熟悉MySQL和SQL Server,所以如果你有时间,请详细说明。

谢谢

如何使用信息模式视图或像sysobjects , syscolumns这样的底层系统表,然后使用FOR XML子句来吐出一些xml。 这里有一些让你开始的东西:

SELECT o.name as table_name ,c.name as column_name ,t.name as column_type ,t.length as column_length from sysobjects o inner join syscolumns c on o.id=c.id inner join systypes t on c.xtype=t.xtype where o.xtype='u' FOR XML RAW 

为了表明这是可能的,我不能告诉你如何创build代码,但是用我的朋友所做的一些软件,schema .xml看起来就像这样。 也许这可以帮助您启动您创build自己的代码?

  <table enabled="true" name="Users"> <field name="i_user_id" size="10" type="INTEGER"/> <field name="c_user_login" size="32" type="VARCHAR"/> <field name="c_user_pwd" size="32" type="VARCHAR"/> <field name="c_user_session" size="40" type="VARCHAR"/> <field name="c_user_name" size="200" type="VARCHAR"/> <field name="d_stamp_" size="19" type="DATETIME"/> <index name="Users2CID_0" unique="true" using="OTHER"> <field direction="ASCENDING" name="i_user_id" ordinal="1"/> </index> <index name="Users2_1_idx" unique="false" using="OTHER"> <field direction="ASCENDING" name="c_user_login" ordinal="1"/> </index> <index name="Users2_3_idx" unique="false" using="OTHER"> <field direction="ASCENDING" name="c_user_session" ordinal="1"/> </index> <index name="Users2_4_idx" unique="false" using="OTHER"> <field direction="ASCENDING" name="c_user_name" ordinal="1"/> </index> <index name="Users2_8_idx" unique="false" using="OTHER"> <field direction="ASCENDING" name="c_flag_" ordinal="1"/> </index> <index name="Users2_9_idx" unique="false" using="OTHER"> <field direction="ASCENDING" name="d_stamp_" ordinal="1"/> </index> </table> 

然后数据文件如下所示:

Users.dat

 i_user_id ( ,10,INTEGER,true,true,true) c_user_login ( ,32,VARCHAR,true,true,true) c_user_pwd ( ,32,VARCHAR,true,true,true) c_user_session ( ,40,VARCHAR,true,true,true) c_user_name ( ,200,VARCHAR,true,true,true) d_stamp_ ( ,19,DATETIME,true,true,true) 1 CUSER Null -1 CUser 2010-02-16 23:06:38.0 2 admin X032343fZdYdgrtueuILPmQ== -1 Admin User 2009-12-03 00:13:30.0 

我编写了一个应用程序( dbscript ),它在从数据库导入模式或上传SQL DDL文件后,生成数据库模式(或单个模式对象)的XML表示。