【问题标题】:Is there any way in .net/C# to copy a table structure from one database to another one?.net/C# 中是否有任何方法可以将表结构从一个数据库复制到另一个数据库?
【发布时间】:2017-04-19 02:30:06
【问题描述】:

我有两个数据库 - 一个已满,另一个用作一些表的缓存。 C# 中有没有办法将表(包括结构和数据)克隆到目标数据库? (源数据库太大,无法将它们全部复制到目标数据库)。

【问题讨论】:

  • 这两个数据库是在同一个数据库服务器上吗?
  • 理想情况下,您应该在 SQL Server 中执行此操作(无需复制整个数据库),而不是在 C# 中 - 有什么理由需要在 C# 中执行此操作?
  • 您可以使用 SQL Server DTS 工具来复制表数据和结构
  • 我认为传输所有数据和结构的最佳方式是使用 SSIS 中的Transfer SQL Server Objects 任务。虽然大概一旦结构设置一次,您只需要复制数据吗?你能用复制吗?或者您可以直接复制新数据吗?
  • 我对源数据库没有足够的权限。 sp-help 命令有效,我还可以查看所有数据;但无权获取“创建表”脚本。

标签: c# sql copy structure


【解决方案1】:

打开一个 SqlConnection 并执行类似这样的查询:

select * into 'db2'.dbo.tablename from 'db1'.dbo.tablename

【讨论】:

  • 我还没试过;但是如果目标数据库上不存在这个表,它会创建表吗?
  • 是的,如果表不存在,它会创建表。请记住,它将没有索引。
【解决方案2】:

当然,SQL Server 有一些管理工具可以轻松完成此类任务。如果您想在 C# 中执行此操作,我不知道有什么不同的方法,而不是查询目录,然后比较,在另一个数据库中重建整个内容。

几年前,我启动了一个开源 MSBuild 任务来执行此操作。源代码在this sourceforge project。大概我会把这段代码迁移到github上,不过大家可以看到,很久没有这么大的进化了。

【讨论】:

    【解决方案3】:

    在此处查看批量复制http://msdn.microsoft.com/en-us/library/s4s223c6.aspx

    希望对您有所帮助。

    【讨论】:

    • 这里只处理插入数据,不复制表结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    相关资源
    最近更新 更多