Dans un .sqlproj j'ai changé le nom d'une table (parmi d'autres changements). J'ai fait le changement de nom dans Visual Studio 2012 en utilisant l'option 'refactor'. Lorsque j'essaie de publier les modifications, le script de deployment a une command CREATE TABLE plutôt qu'une command ALTER TABLE pour le changement de nom de la table. Qu'est-ce que je fais mal ici?
Je suis à la racine de mon problème. La database à laquelle je publiais le script était une copy (bacpac) de la vraie database. Bacpac manquait la table dbo .__ RefactorLog, donc lors de l'exécution du script, il ignorait le file refactorlog et créait simplement la database.
Vous modifieriez quelque chose qui existe déjà, puisque le script crée la table que vous auriez dû laisser comme CREATE TABLE
vous changez le nom dans le script ne fait rien mais essaye de changer le nom d'une table qui n'existe pas ce qui entraînera évidemment une erreur .
De plus, si vous avez déjà une table appelée foo
et que vous souhaitez changer son nom de foo
en say bar
vous n'utiliserez pas la command Alter table mais la procédure système suivante.
EXECUTE sp_rename 'dbo.foo', 'bar'