2010-01-22 3 views
1

J'ai utilisé des objets SMO pour générer un script SQL pour les objets de base de données pour SQL Server. Cela fonctionne bien lorsque la base de données est dans le réseau local. Mais cela prend beaucoup de temps si la base de données est dans un serveur distant. Quelle serait la meilleure et la plus rapide façon de générer des scripts pour les objets SQL Server lorsque la base de données est dans un serveur distant.Générer un script pour tous les objets pour la base de données SQL Server

Répondre

0

Vous pouvez precaching objets nécessaires pour améliorer les performances avec PrefetchObjects méthode:

var server = new Server(new ServerConnection(connectionString)); 
var database = server.Databases[databaseName]; 

database.PrefetchObjects(typeof(Table)); 

Si vous essayez de mettre en œuvre tout ce qui concerne la migration du schéma de base de données, consultez Wizardby.

+0

J'ai essayé ceci: serveur Server = nouveau serveur (con); var database = server.Databases [vstrDatabase]; database.PrefetchObjects (typeof (Table)); foreach (table tbl dans la base de données.Tables) { sbr = new StringBuilder(); StringCollection script = tbl.Script(); tbl.Script prend beaucoup de temps pour le serveur distant, donc tout le processus prend beaucoup de temps. J'ai besoin de créer des scripts pour tous les objets. Alors, quel serait le meilleur moyen. –

+0

L'aide pour les états PrefetchObjects _Cette option permet de remplir complètement les collections avec des objets en effectuant un déplacement réseau vers l'instance de SQL Server._ - avez-vous déjà regardé ce ** un ** aller-retour en utilisant Profiler? INSENSÉ! – springy76

+0

@ springy76 Quel est le problème? –

2

J'utiliser SQL Server Management Studio

De l'élément de base de données clic droit et sélectionner des tâches, générer des scripts. De nombreuses options pour votre plaisir.

(Vous pouvez même avoir des données de script dans les tableaux.)

+0

Je dois le faire par programmation en utilisant C#. –

Questions connexes