1

我想使用 c# 从另一个数据库模式信息生成新的 sql 数据库

以下代码显示了从数据库中检索信息

        string connetionString = null;

        SqlConnection connection;

        SqlCommand command;

        SqlDataAdapter adapter = new SqlDataAdapter();

        DataSet ds = new DataSet();

        int i = 0;

        string sql = null;



        connetionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\Database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

        sql = "Select DISTINCT(name) FROM sys.Tables";



        connection = new SqlConnection(connetionString);



        try
        {

            connection.Open();

            command = new SqlCommand(sql, connection);

            adapter.SelectCommand = command;

            adapter.Fill(ds);

            adapter.Dispose();

            command.Dispose();

            connection.Close();

            DataSet dset = new DataSet();

            for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
            {

                listBox1.Items.Add(ds.Tables[0].Rows[i].ItemArray[0].ToString());
                SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM "+ds.Tables[0].Rows[i].ItemArray[0].ToString()+"",connection);

                ad.Fill(dset);


            }
            dset.Tables[0].WriteXml(@"E:\WindowsFormsApplication2\WindowsFormsApplication2\ds.xml");

        }

        catch (Exception ex)
        {

            MessageBox.Show("Can not open connection ! ");

        }

同样,我必须从数据库中获取信息,并且必须使用此模式信息生成新数据库。

4

1 回答 1

0

要将架构从一个数据库复制到另一个数据库:

  1. 使用 INFORMATION_SCHEMA 表集(例如 INFORMATION_SCHEMA.TABLES)遍历源数据库中的对象以获取表列表。
  2. 对于 SQL 服务器,sp_help在每个(或sp_helptext存储过程)上调用存储过程。对于 MySQL,使用SHOW CREATE TABLESHOW CREATE PROCEDURE类似的命令。这些返回用于创建对象的 SQL。
  3. 在目标数据库上运行该 SQL。

请注意,您可以通过 SQL Server Management Studio 生成用于创建 SQL Server 数据库的 SQL 脚本。

于 2012-09-06T07:04:19.427 回答