簡體   English   中英

在默認值以外的文件組上創建表

[英]Create a table on a filegroup other than the default

標題很清楚,我創建了一個新的文件組“ArchiveFileGroup”:

ALTER DATABASE MyDataBase
ADD FILEGROUP ArchiveFileGroup;
GO

我想創建一個名為:arc_myTable的表,以便存儲來自這個的舊數據:myTable

我使用了以下查詢:

CREATE TABLE [dbo].acr_myTable(
    [Id] [bigint] NOT NULL,
    [label] [nvarchar](max) NOT NULL,
)on ArchiveFileGroup 

我不確定它是否是正確的方法,我不知道創建FileGroup的位置以檢查它是否包含表。

您可以使用此sql查詢輕松檢查:

SELECT o.[name], o.[type], 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 o.type = 'U' -- User Created Tables
GO

只需添加:

AND f.name = ArchiveFileGroup

查看新文件組中的所有內容或:

AND o.name = acr_myTable

查看桌子的位置。

如果您從未將文件添加到文件組,那么我會發現錯誤,但您沒有包含錯誤消息或任何說您創建文件的內容。 如果你沒有,我建議從微軟文檔開始,如果需要的話。

OP發現有助於嘗試在他的文件組中創建一個新文件。

您可以使用sys.filegroups查看服務器中所有已創建的文件組

SELECT *
FROM sys.filegroups

有關詳細信息,請參見此處列出在所有文件組上創建的所有對象

這是老帖子。 想要添加信息,它可能在將來幫助某人。

sp_help <table_name>

您可以看到創建表的文件組。

NB。 您可以通過右鍵單擊表格然后選擇屬性進行檢查。 在存儲上,您可以看到新表所屬的文件組

在您的情況下:它將在默認文件組上創建表,而不是在您創建的新文件組上。 文件組是邏輯的,用於創建輔助文件。 恩。 如果需要在與默認驅動器不同的位置創建表,則必須為新文件組定義fileName。

ALTER DATABASE [db] ADD FILEGROUP [NewFileGroup]

ALTER DATABASE [db] ADD FILE ( NAME = N'NewFile', FILENAME = N':D\..\Newfile.ndf' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [NewFileGroup]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM