Каким-то образом десятилетия назад в нашей базе данных была создана таблица, которая начинается с #
. Он отображается в обозревателе объектов в базе данных приложения, а не в tempdb
. По какой-то причине Azure не будет импортировать базу данных таким образом.
Мы не можем отбросить его, переименовать или взаимодействовать с ним. Я пытался удалить из Object Explorer, Script Drop , Rename из графического интерфейса, и ни один из них не работал.
Мы находимся на 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)'.
Как убить этот объект, чтобы мы могли перенести его в Azure?
SELECT [name], CONVERT(VARBINARY(128), [name]) FROM sys.tables WHERE [name] = N'#OBSOLETE';
. Благодарю.
object_id
из этой таблицы. 2) Перезапустите экземпляр в однопользовательском режиме. 3) подключиться через выделенное соединение администратора. 4) В этой БД попробуйте что-то вроде UPDATE sys.objects$ SET [name] =N'obsolete' WHERE [object_id] = {ye_olde_object_id}; {enter} GO {enter}
. Стоит выстрел ..