Ce que Brann mentionne à partir de Visual Studio 2008 SP1 Team Suite est la version 1.4 du Database Publishing Wizard. Il est installé avec sql server 2008 (peut-être seulement professionnel ?) pour \Program Fichiers \Microsoft SQL Server \90\Tools\Publishing\1.4. L'appel VS depuis l'explorateur de serveur consiste simplement à appeler ceci. Vous pouvez réaliser la même fonctionnalité via la ligne de commande comme :
sqlpubwiz help script
Je ne sais pas si la v1.4 a les mêmes problèmes que la v1.1 (les utilisateurs sont convertis en rôles, les contraintes ne sont pas créées dans le bon ordre), mais ce n'est pas une solution pour moi parce qu'elle ne script pas les objets vers différents fichiers comme le fait l'option Tasks->Generate Scripts dans SSMS. J'utilise actuellement une version modifiée de Scriptio (utilise l'API MS SMO) pour agir comme un remplacement amélioré de l'assistant de publication de base de données (sqlpubwiz.exe). Il n'est pas actuellement possible de créer un script à partir de la ligne de commande, mais je pourrais ajouter cette contribution à l'avenir.
Scriptio a été initialement posté sur le blog de Bill Graziano, mais a ensuite été publié sur CodePlex par Bill et mis à jour par d'autres. Lisez la discussion pour voir comment compiler pour une utilisation avec SQL Server 2008.
http://scriptio.codeplex.com/
EDIT : J'ai depuis commencé à utiliser le produit SQL Compare de RedGate pour faire cela. C'est un très bon remplacement pour tout ce que l'assistant de publication SQL aurait dû être. Vous choisissez une base de données, une sauvegarde ou un instantané comme source, et un dossier comme emplacement de sortie, et il dépose tout joliment dans une structure de dossiers. Il se trouve que c'est le même format que leur autre produit, SQL Source Control, utilise.
1 votes
Avez-vous trouvé la réponse ? Je veux faire ça aussi, j'ai utilisé Publishing, ça a sauvegardé en dur, je ne sais pas où et là je n'ai pas toutes les options qui sont lors de la génération d'un script :- ?
2 votes
Comme mentionné dans plusieurs réponses, utilisez le SMO si vous êtes un développeur.