繁体   English   中英

使用SP克隆整个数据库

[英]Clone entire database with a SP

我正在尝试找出这是否可行,但到目前为止,我还没有找到任何好的解决方案。 我想要实现的是编写一个存储过程,该过程可以克隆数据库但不存储数据。 这意味着应该包括所有表,视图,约束,键和索引,但不要包含任何数据。 能做到吗

当然-您存储的proc必须读取系统目录视图以找出数据库中有哪些对象,确定它们的潜在依赖关系,然后创建一个或一组重新创建数据库的SQL脚本并执行它们。

可能-不太好做。 特别是对象之间的依赖关系可能比第一次见到的眼睛引起更多的头痛。

您还可以:

  • 使用类似SQL Server Management Studio的工具(如果您使用的是SQL Server-您未指定)并手动创建脚本,然后仅在单独的服务器上重新执行它们

  • 使用Redgate SQL Compare之类的“差异”工具比较两个服务器,并更新第二个服务器

在SQL Server中,您可以浏览系统表(sys.tables,sys.columns等)并一次构造一个东西。 一开始它将是非常手动的并且容易出错,但是它应该很快变得系统化。

另一种方法是使用SMO在.Net中编写某些内容。 查看此链接:

http://www.sqlteam.com/article/scripting-database-objects-using-smo-updated

为此,我已经成功使用了Microsoft SQL Server数据库发布向导。 这非常简单,不需要编码。 这是一个示例调用:

sqlpubwiz脚本-d DatabaseName -S ServerName -schemaonly C:\\ Projects2 \\ Junk \\ DatabaseName.sql

我相信默认值是创建数据和架构,但是您可以使用schemaonly参数。

在这里下载

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM