【问题标题】:How to transfer SQL Server DB structure to another server如何将 SQL Server 数据库结构传输到另一台服务器
【发布时间】:2010-06-21 17:36:51
【问题描述】:

请告诉我将数据库结构复制到另一台服务器的最佳方法是什么?

我正在尝试在 Management Studio 中生成一个脚本,然后在远程计算机上运行该脚本。我讨厌那个东西。它的工作方式不可预测,您必须在生成的脚本中手动修复很多废话。我想这不是最好的解决方案。

然后我尝试使用 DTSWizard.exe 生成 SSIS 包,但我对这些东西一无所知,而且我找不到只复制没有数据的结构的方法。

也许有一种方法可以将整个数据库结构分解成更小的部分并使用它们 - 首先处理所有表,然后是视图,然后是函数等。

或者还有另一种正常的方法来做到这一点而不会那么头痛?

【问题讨论】:

  • 使用备份/恢复,并在必要时截断表?
  • 顺便说一句,产品是“SQL Server”,而不是“MS SQL”。
  • @John Saunders:顺便说一句,产品是“SQL Server”,而不是“SQL Serve”。 :-)

标签: sql sql-server sql-server-2005 smo dts


【解决方案1】:

生成脚本是最好的解决方案。如果您必须手动修复它,则说明您编写的脚本不正确。使用 Management Studio 中的“生成脚本...”任务

一定要检查:

  1. 您是否正在为合适的版本生成脚本?
  2. 如果在早期版本的 db 上运行,您是否指定了“DROP and CREATE”和“IF EXISTS”选项?
  3. 您是否正在编写所有辅助对象(用户、触发器、索引等)的脚本?

【讨论】:

  • 我更重要的一点是:我使用脚本生成器来维护用于初始化和升级应用程序的数据库脚本。如果我使用运行数据库时使用的相同假设集编写数据库脚本,我不会发现它的工作方式无法预测。例如,脚本是自己创建数据库还是数据库已经需要存在并被选中?脚本是否创建安全对象?
  • 尽管选择了 Generate Object-level Permissions 选项,但普通脚本工具无法正确生成所有权限,至少对于我的 DB 而言不是。
  • 我正在尝试使用 2008 的管理工作室在 sql2005 服务器上编写数据库脚本。这里最令人头疼的是脚本生成器将 Create VIew 语句随机放置在它想要的任何位置。有时甚至在桌子之前。我不得不把时间浪费在繁琐的剪切粘贴工作上。虽然我正在考虑四个脚本而不是一个。我将尝试分别编写所有对象的脚本 - 函数、表、存储过程、视图...
【解决方案2】:

如果可以接受第三方工具,Red Gate SQL Compare 是一个很好的工具。

【讨论】:

  • Red Gate SQL Compare 是一个很棒的工具!
  • 是的,红色大门很酷......虽然整个工具带都非常昂贵
  • 我想知道是否有任何工具可以扫描您的数据库结构或架构脚本并报告不一致之处。因为如果您生成脚本,您只能在脚本运行时看到问题。
【解决方案3】:

试试 DBSourceTools。 (http://dbsourcetools.codeplex.com)
它是开源的,专门设计用于编写整个数据库的脚本 - 表、视图、procs 到磁盘,然后通过部署目标重新创建该数据库。
您可以编写所有数据的脚本,或者只指定要为哪些表编写脚本数据。
此外,您可以压缩结果以进行分发。
我们使用它来控制数据库的源代码,并测试新版本的更新补丁。
在后端,它围绕 SMO 构建,因此支持 SQL 2000、2005 和 2008。
DBDiff 已集成,允许进行模式比较。
玩得开心, - 内森。

【讨论】:

    【解决方案4】:

    试用 SQL Examiner Suite: http://www.sqlaccessories.com/SQL_Examiner_Suite/ - 您可以使用此工具复制架构和数据

    【讨论】:

      猜你喜欢
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      相关资源
      最近更新 更多