De alguma forma, décadas atrás, uma tabela foi criada em nosso banco de dados que começa com a #
. Ele aparece no Pesquisador de Objetos, no banco de dados do aplicativo, e não no tempdb
. Por algum motivo, o Azure não importará o banco de dados como este.
Não podemos descartá-lo, renomeá-lo ou interagir com ele. Eu tentei Delete from Object Explorer, Script Drop , Rename from GUI e nenhum deles funcionou.
Estamos no 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)'.
Como matamos esse objeto para podermos migrar para o Azure?
SELECT [name], CONVERT(VARBINARY(128), [name]) FROM sys.tables WHERE [name] = N'#OBSOLETE';
. Obrigado.
object_id
tabela. 2) Reinicie a instância no modo de usuário único. 3) conecte-se via Conexão de administrador dedicada. 4) Nesse banco de dados, tente algo parecido UPDATE sys.objects$ SET [name] =N'obsolete' WHERE [object_id] = {ye_olde_object_id}; {enter} GO {enter}
. Pena um tiro ..