【问题标题】:How to create a database from existing Database without any data?如何在没有任何数据的情况下从现有数据库创建数据库?
【发布时间】:2018-05-21 15:00:34
【问题描述】:

我想从现有数据库中创建一个数据库,而不从中获取任何数据(仅模式)。我知道,我可以使用 SQL Server Management Studio 为此目的创建一个脚本,但我需要一些事务 SQL 脚本来动态执行此操作

【问题讨论】:

  • SQL Server 2012 copy database without dataMS SQL 2008 - Create a copy of the database without the data 或可能更多的可能重复项。如果这些没有回答您的问题,大概是因为“我需要一些事务 SQL 脚本来动态执行此操作”,您应该解释一下这应该是什么意思。
  • 看看herehere
  • 感谢您重播 HoneyBadger,但这不是我想要的。我想要类似过程或函数的东西
  • 如何创建另一个没有数据的数据库。然后,当您生成脚本时,使用它在此数据库中创建一个没有数据的存储过程。您可能需要一些数据库名称和位置的输入参数。
  • 谢谢,Dan Bracuk,这是个好主意,但后来如果我对数据库的架构进行了一些更改,我需要重新创建脚本并更改我的程序。我不想要这个。我希望这动态发生

标签: sql-server tsql


【解决方案1】:

如果我需要这样做,这是我会使用的方法。这不是一项简单的任务,并且内置的脚本工具更适合如前所述。但是,如果必须这样做,我会使用这种方法。

第 1 步 - 构建表格 - 使用以下方法为所有表格构建游标:

SELECT object_schema_name([object_id]), [name]
FROM   [sys].[objects]
WHERE  [type] IN ( N'U' )
ORDER  BY [name];

单步执行并构建动态 SQL 到“SELECT * INTO .. from ..

第 2 步 - 构建过程和函数 - 使用以下方法构建游标:

SELECT [name]
FROM   [sys].[objects]
WHERE  [type] IN ( N'P', N'TF', N'FN', N'IF' )
ORDER  BY [name];

遍历对象并在每个对象上运行“exec sp_helptext '.'”。使用 COALESCE 字符串构建器连接结果行并执行结果。在目标数据库上执行结果。

【讨论】:

  • 这不是我想要的。感谢您的帮助
【解决方案2】:

【讨论】:

  • 谢谢,PingPongOng。我想这正是我需要的。
【解决方案3】:

右键单击数据库、任务、提取数据层应用程序:

创建 dacpac 文件后,右键单击 Databases 并单击 Deploy Data-tier Application

选择创建的 dacpac 就完成了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-24
    • 2011-07-13
    • 1970-01-01
    • 2015-12-26
    • 2011-08-31
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    相关资源
    最近更新 更多