La perte de données VSDBCMD peut se produire, mais où?
-
29-10-2019 - |
Question
Lorsque vous utilisez VSDBCMD pour déployer ma base de données:
vsdbcmd.exe /a:Deploy /manifest:MyDatabase.deploymanifest
Je reçois:
SQL01268 .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 Rows were detected. The schema update is terminating because data loss might occur.
SQL01268 An error occurred while the batch was being executed.
Ce qui est bien, mais ça ne me dit pas où La datalos se produira. Pour découvrir que je dois utiliser <DeployToScript>True</DeployToScript>
, puis chargez le script pour voir:
IF EXISTS (select top 1 1 from [dbo].[MyTable])
RAISERROR ('Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT
Existe-t-il un moyen d'obtenir VSDBCMD pour afficher ces informations lors du déploiement direct de la base de données sans avoir à générer le SQL d'abord?
Merci
La solution
Il n'y a aucun moyen de le faire, c'est un bug (ou une fonctionnalité manquante). Voir le commentaire de Tom à ma question.
Autres conseils
Pour moi, j'avais besoin de vider ma base de données avant de déployer SQL