Bằng cách nào đó, nhiều thập kỷ trước, một bảng đã được tạo trong cơ sở dữ liệu của chúng tôi bắt đầu bằng một #
. Nó hiển thị trong Object Explorer trong cơ sở dữ liệu của ứng dụng, không phải trong tempdb
. Vì một số lý do, Azure sẽ không nhập cơ sở dữ liệu như thế này.
Chúng tôi không thể bỏ nó, đổi tên nó hoặc tương tác với nó. Tôi đã thử xóa khỏi Object Explorer, Script Drop , Đổi tên từ GUI và không ai trong số họ đã làm việc.
Chúng tôi đang dùng 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)'.
Làm thế nào để chúng ta tiêu diệt đối tượng này để chúng ta có thể di chuyển nó sang Azure?
SELECT [name], CONVERT(VARBINARY(128), [name]) FROM sys.tables WHERE [name] = N'#OBSOLETE';
. Cảm ơn.
object_id
bảng đó. 2) Khởi động lại phiên bản trong chế độ người dùng đơn. 3) kết nối thông qua Kết nối quản trị chuyên dụng. 4) Trong DB đó, hãy thử một cái gì đó như UPDATE sys.objects$ SET [name] =N'obsolete' WHERE [object_id] = {ye_olde_object_id}; {enter} GO {enter}
. Đáng giá một cú sút ..