Sql server 为SQL Server数据库的所有对象生成脚本

Sql server 为SQL Server数据库的所有对象生成脚本,sql-server,scripting,Sql Server,Scripting,我使用SMO对象为SQL Server的数据库对象生成SQL脚本。当数据库位于本地网络中时,这种方法工作得很好。但若数据库位于远程服务器中,则需要花费大量时间。当数据库位于远程服务器中时,为SQL Server对象生成脚本的最佳和最快的方法是什么。您可以尝试预先设置所需的对象,以使用以下方法提高性能: 如果您试图实现与数据库架构迁移相关的任何内容,请查看。我将使用SQL Server Management Studio 在数据库项中,右键单击并选择任务,生成脚本。有很多选择供您选择 (您甚至可以

我使用SMO对象为SQL Server的数据库对象生成SQL脚本。当数据库位于本地网络中时,这种方法工作得很好。但若数据库位于远程服务器中,则需要花费大量时间。当数据库位于远程服务器中时,为SQL Server对象生成脚本的最佳和最快的方法是什么。

您可以尝试预先设置所需的对象,以使用以下方法提高性能:


如果您试图实现与数据库架构迁移相关的任何内容,请查看。

我将使用SQL Server Management Studio

在数据库项中,右键单击并选择任务,生成脚本。有很多选择供您选择


(您甚至可以在表中包含脚本数据。)

我尝试了以下方法:服务器=新服务器(con);var database=server.Databases[vstrDatabase];预取对象(typeof(Table));foreach(database.Tables中的Table tbl){sbr=new StringBuilder();StringCollection script=tbl.script();foreach(script中的string str){}}tbl.script对于远程服务器来说需要大量时间,所以整个过程需要很长时间。我需要为所有对象创建脚本。那么最好的方法是什么呢?PrefetchObjects的帮助中指出,通过对SQL Server实例进行一次网络访问,可以使用对象完全填充集合。-您是否曾经使用Profiler观看过这一次往返?疯了!它生成数千个往返对
使用[YourDbName]
+
执行某个东西
——这对于通过internet连接的服务器来说仍然需要很长时间。今天我在局域网内的服务器上尝试了
database.PrefetchObjects(typeof(Statistic))
,但它没有在几分钟内结束。我必须使用c#以编程方式完成这项工作。
var server = new Server(new ServerConnection(connectionString));
var database = server.Databases[databaseName];

database.PrefetchObjects(typeof(Table));