【问题标题】:getting SQL from one database to create a similar database using only SQL从一个数据库获取 SQL 以仅使用 SQL 创建类似的数据库
【发布时间】:2012-03-11 00:07:24
【问题描述】:

我想转储一个 SQL Server 数据库 - 获取创建类似数据库所需的所有 SQL 代码。我拥有DatabaseA 的完全在线权限,我可以使用 SQL 提供它并在表中的行中获取结果。

我确实可以使用企业管理器、任何应用程序、实用程序等。我只能用纯 SQL 来喂它。

我追求的是SQL代码,比如CREATE TABLE等等。这样我就可以将其粘贴到查询中,然后瞧 - 表、过程、函数是在 DatabaseB 中创建的。

我将复制数据。

这部分是我想要的,它给了我程序和功能:

Select object_Name(object_ID),definition from sys.SQL_Modules

但不适用于表格。

【问题讨论】:

  • 您将需要通过 powershell 或其他框架使用企业管理器、ssms 或其他一些工具,如 SMO。表定义太复杂,无法尝试用纯 TSQL 解析,索引也是如此。
  • 企业管理器还使用纯 T-SQL 来获取所有架构信息。因此,您可以启动 SQL Profiler 并调查企业管理器生成的查询。这将为您提供有关所需查询的一些线索。
  • 谢谢,正如我所写,我不能使用企业管理器。我对运行数据库服务器的机器没有任何访问权限。我只能通过一个网页访问,我可以在其中输入 SQL 代码并在表格中的行中获取结果。
  • @Elian - 好主意。如果有人已经有这个代码就好了
  • 最好的方法是通过工具自动生成你想要的 DDL。为什么暂停使用工具?

标签: sql-server dump


【解决方案1】:

您可以在 SQL Server Management Studio 中为整个数据库或特定数据库对象生成脚本。

为此,请右键单击数据库,然后选择任务,然后选择生成脚本。

然后它将打开一个向导,您可以选择编写完整数据库或仅特定数据库对象的脚本。

【讨论】:

  • 谢谢,但是你看过我的帖子吗?我不能使用任何“Studio”或“Manager”,因为我只能通过网页访问 SQL Server。在这个页面上,我可以发布任何我想要的 SQL,因为我拥有所有用户权限。
【解决方案2】:

您可以使用命令行或创建存储过程来创建备份,然后使用该备份来创建新数据库。我经常使用命令行。这是之前的Stack 问题,其中包含命令行示例和存储过程示例的链接。

【讨论】:

  • 嗨,命令行对我没有帮助,因为我根本无法访问服务器机器。正如我所写的,我可以使用以下方法获得修复和准备好的代码来创建函数和过程:Select object_Name(object_ID),definition from sys.SQL_Modules 所以我认为必须有一种方法可以为表做同样的事情
  • 那么看一下存储过程的例子,可以选择吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 2012-05-13
  • 2010-10-13
  • 1970-01-01
相关资源
最近更新 更多