Azure-Sql-Database

列出 SQL 文件中的對象

  • May 4, 2016

我們正在嘗試將數據庫從 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

引用自:https://dba.stackexchange.com/questions/136921