Il y a quelques décennies, une table a été créée dans notre base de données qui commence par un #
. Il apparaît dans l'Explorateur d'objets sous la base de données de l'application, pas dans tempdb
. Pour une raison quelconque, Azure n'importera pas la base de données comme ceci.
Nous ne pouvons pas le supprimer, le renommer ou interagir avec lui. J'ai essayé Supprimer de l'Explorateur d'objets, Script Drop , Renommer de l'interface graphique et aucun d'entre eux n'a fonctionné.
Nous sommes sur SQL 2008 R2.
drop table [*app*].[dbo]."#OBSOLETE";
Database name '*app*' ignored, referencing object in tempdb.
Msg 3701, Level 11, State 5, Line 1
Cannot drop the table '#OBSOLETE', because it does not exist or you do not
have permission.
exec sp_rename "dbo.#OBSOLETE", "dbo.obsolete"
Msg 15225, Level 11, State 1, Procedure sp_rename, Line 338
No item by the name of 'dbo.#OBSOLETE' could be found in the current database '*app*', given that @itemtype was input as '(null)'.
Comment tuer cet objet pour pouvoir le migrer vers Azure?
SELECT [name], CONVERT(VARBINARY(128), [name]) FROM sys.tables WHERE [name] = N'#OBSOLETE';
. Merci.
object_id
de cette table. 2) Redémarrez l'instance en mode mono-utilisateur. 3) connectez-vous via une connexion administrateur dédiée. 4) Dans cette BD, essayez quelque chose comme UPDATE sys.objects$ SET [name] =N'obsolete' WHERE [object_id] = {ye_olde_object_id}; {enter} GO {enter}
. Vaut le coup ..