2017-06-12 6 views
0

Lorsque generating a database upgrade using Sql Server Data Tools's sqlpackage.exe, il est possible que SSDT génère du code pour migrer des données de table, c'est créer une nouvelle table temporaire avec le schéma final souhaité, déplacer les données de la table d'origine dans la nouvelle table, déposer la table d'origine puis Renommez la table temporaire pour qu'elle corresponde au nom de la table d'origine.Existe-t-il une liste complète des causes de SqlPackage.exe pour effectuer des mouvements de données (recréation de table) lors de la mise à niveau d'une base de données?

Ce code dans le script peut être trouvé après l'instruction PRINT N'Starting rebuilding table <tablename>';.

J'imagine que la plupart des raisons pour cela sont dues au fait qu'il n'y a pas d'instruction DDL atomique pour générer le changement requis par la mise à niveau. J'ai trouvé un list de tels cas pour un autre outil similaire. Cependant j'essaye de trouver une documentation sur quand SSDT effectuera la migration de données/récréation de table, car j'ai vu quelques situations dans lesquelles un DDL serait disponible pour faire le travail, mais SSDT recréerait toujours la table (par exemple, lors de la modification d'un index clusterisé).

Ma question est la suivante: existe-t-il un document où SSDT générera du code pour la migration de données/la recréation de table?

Répondre

0

Non, malheureusement, cela n'est pas documenté. J'ai eu l'occasion de revoir les scénarios de mouvement de données de table lors de l'implémentation de la fonction d'ordre des colonnes ignorées dans SSDT. Même avec le code source, il est difficile de produire une liste complète des situations qui entraînent des mouvements de données de table, car elles sont considérées comme la solution de repli «sûre» pour les situations imprévues ou non gérées.

2

Si vous recherchez plus de contrôle sur la façon dont le mouvement de données se produit, ReadyRoll peut être une bonne option pour vous. Nous nous différencions de l'approche basée sur les états de SSDT en générant les scripts à l'avance et en les incluant comme artefacts de déploiement de première classe dans votre projet de studio visuel. Cela signifie que vous pouvez revoir les scripts et, surtout, les modifier, si vous décidez qu'ils n'ont pas choisi l'approche optimale.

À l'instar de SQL Prompt Core, l'édition ReadyRoll Core est un droit pour les utilisateurs Visual Studio Enterprise et sera installée avec la charge de travail de stockage de données. Plus d'informations sur ReadyRoll peut être trouvé on the Redgate website.