我可以编写一个SQL脚本来动态创建从一个数据库到另一个数据库的所有存储过程和视图吗?

时间:2018-04-05 22:58:44

标签: sql sql-server tsql

我可以编写一个SQL脚本来动态创建从一个数据库到另一个数据库的所有存储过程和视图吗?:

  • 我有MyDatabase的2个实例
      {li> MyDatabase 上的{li> 1 ServerX个实例 {li> MyDatabase 上的{li> 1 ServerY个实例

我想编写一个执行以下操作的SQL脚本:

  1. 删除ServerY
  2. 上的所有存储过程和视图
  3. CREATE
  4. 上的所有存储过程和视图生成ServerX个语句
  5. CREATE上执行这些ServerY语句,因此ServerY上的所有存储过程和视图都与ServerX
  6. 上的相同

    我确定可以这样做,但是这里的任何人都可以描述一下这样做的方法吗?

3 个答案:

答案 0 :(得分:1)

有一种更简单的方法 - SQL Server可以将您创建的对象编写为单个* .sql文件。然后,您只需在另一台服务器上运行该脚本。您甚至可以包含现有数据库中的数据。有关详细信息,请参阅:https://dzone.com/articles/generate-database-scripts-with-data-in-sql-server

答案 1 :(得分:0)

为什么呢? SQL Server已经内置了所有这些内容

所有SP和视图都在服务器上。右键单击您的数据库,然后单击任务>生成脚本。 SQL Server Management Studio能够为您生成CREATE脚本,可以在SP,视图等上完成。

然后,您可以简单地复制此脚本并在ServerX服务器/数据库上执行它。

但如果您需要自动化,则应使用powershell来模拟此任务。在SQL脚本中执行此操作并不是最佳解决方案。

答案 2 :(得分:0)

创建从服务器X到服务器Y的链接,然后选择,假设服务器x为主服务器。