Azure-Sql-Database
列出 SQL 文件中的對象
我們正在嘗試將數據庫從 SQL 2014 遷移到 Azure SQL。
在 SSMS 中,您可以右鍵點擊數據庫,然後點擊“將數據庫部署到 Windows Azure SQL 數據庫..”的任務。
此任務失敗,因為數據庫使用 SECONDARY 文件組。我已經完成了將所有索引、堆等從 SECONDARY 文件組移到 PRIMARY 文件組的過程。
但是,我仍然無法刪除 SECONDARY 文件組中的文件,因為其中有 43MB 的數據。我發現列出文件組中所有對象的每個腳本都說文件中沒有任何內容。
如何確定此文件組中仍有哪些內容,以便刪除該文件並刪除 SECONDARY 文件組?
我發現這個腳本列出了每個文件組中的 LOB 對象。根據結果,我能夠找到仍在使用 SECONDARY 文件組的表。
SELECT au.*, ds.name AS [data_space_name], ds.type AS [data_space_type], p.rows, o.name AS [object_name] FROM sys.allocation_units au INNER JOIN sys.data_spaces ds ON au.data_space_id = ds.data_space_id INNER JOIN sys.partitions p ON au.container_id = p.partition_id INNER JOIN sys.objects o ON p.object_id = o.object_id WHERE au.type_desc = 'LOB_DATA'
你能把下面的sql語句的結果貼出來嗎?
SELECT o.[name], o.[type], o.[type_desc], i.[name], i.[index_id], f.[name] FROM sys.indexes i INNER JOIN sys.filegroups f ON i.data_space_id = f.data_space_id INNER JOIN sys.all_objects o ON i.[object_id] = o.[object_id] WHERE i.data_space_id = f.data_space_id AND i.data_space_id > 1 GO