Comment extraire MSSQLServer base de données .dacpac sans VerifyExtraction?
Je veux extraire un schéma de base de données d'une MSSQLServer base de données avec Server Management Studio. J'utilise l'Extrait de commande "Extraire des Données de la couche Application.."
Dans la base de données sont plusieurs références à une autre base de données. De ce fait j'obtiens l'erreur suivante.
Erreur de l'extraction de la base de données: Validation du modèle de schéma pour le paquet de données a échoué.
Erreur SQL71562: Erreur de validation d'élément [dbo].[x] a une référence non résolue à l'objet [dbo].[y]. Les références externes ne sont pas pris en charge lors de la création d'un package à partir de cette plate-forme.
Le problème, c'est que SSMS utilise le SQLPackage.exe avec le paramètre /p:VerifyExtraction=True. Lorsque j'utilise la console et de les appeler SQLPackage.exe sans ce Paramètre, il utilise /p:VerifyExtraction=False par défaut et je peux créer la .fichier dacpac.
Est-il un moyen de configurer SSMS pour désactiver la vérification?
Vous devez vous connecter pour publier un commentaire.
Je n'étais pas en mesure de trouver une méthode qui fonctionne dans SSMS (2008 R2 ou 2012), soit, mais Visual Studio (2013) avec SSDT semble fonctionner: Dans VS, aller à SQL Server de l'Explorateur d'Objets, connectez-vous au serveur en question, cliquez-droit sur la base de données en question, d'Extraire des Données de la couche Application, puis ajuster l'Extrait de Paramètres, dont l'un est "Vérifier l'extraction". Je ne sais pas pourquoi MS ne fait pas que construire que dans SSMS.
Un peu bizarre que j'ai remarqué de faire cela, cependant, est que VS ne extraire une .DacPac via cette méthode. Même lorsque vous choisissez d'ajouter des données à l'extrait, l'extension est encore .DacPac. J'étais sous l'impression que .DacPacs l'ont été uniquement pour le Schéma Uniquement, tandis que .Ainsi ont été pour la structure + Données. Peu importe, après VS créé le .DacPac (Schéma + Données) fichier SSM a été en mesure d'importer amende à l'aide de "Déployer Application de la couche Données..." de l'assistant.
Si vous ne pouvez pas utiliser Visual Studio, vous pouvez utiliser la ligne de commande
SqlPackage
application pour extraire le schéma de la base de données. Par défaut, cette ne pas vérifier le schéma (non, je ne sais pas pourquoi SSMS et de la ligne de commande offre ont des valeurs par défaut différentes!).SqlPackage.exe
peut être trouvé dansC:\Program Files (x86)\Microsoft SQL Server\<SQL_VERSION>\DAC\bin
.Par exemple, les extraits ci-après le schéma de
MyDatabase
de l'instance locale de SQL Server et les sorties à un.dacpac
fichier sur le système de fichiers local:Si vous souhaitez inclure le schéma de vérification à un stade ultérieur, vous pouvez configurer l'indicateur explicitement par l'ajout de
/p:VerifyExtraction=True
à la ligne de commande.Des informations complètes sur
SqlPackage.exe
peut être trouvé ici:https://msdn.microsoft.com/library/hh550080.aspx
C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin\SqlPackage.exe
140
correspondant à SQL Server à partir de 2017. Au lieu de coder en dur l'un de ces dans ma réponse, j'ai maintenant juste mettre<SQL_VERSION>
à la place.