fob*_*obo 7 sql-server-2008 sql-server
我对带有 FILESTREAM 的表上的 ROWGUID 列的要求感到困惑。这个专栏将如何使用?
如果我在同一个表上使用不同的主键(聚集),同时让该 ROWGUID 列“就在那里”而没有聚集索引,是否可以?
像这样:
CREATE TABLE Sample
{
-- This is going to be clustered
[Id] int NOT NULL,
-- What shall I do with it index-wise?
[RowGuid] uniqueidentifier ROWGUIDCOL NOT NULL UNIQUE
}
Run Code Online (Sandbox Code Playgroud)
更新:我发现了一些潜在的相关内容: http://msdn.microsoft.com/en-us/library/cc949109%28d=printer%29.aspx
他们有一个类似的例子:
CREATE TABLE DocumentStore (
DocumentID INT IDENTITY PRIMARY KEY,
Document VARBINARY (MAX) FILESTREAM NULL,
DocGUID UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL
UNIQUE DEFAULT NEWID () ON Data_FG1)
ON DocPartScheme (DocumentID)
FILESTREAM_ON DocFSPartScheme;
GO
Run Code Online (Sandbox Code Playgroud)
附注:
请注意,要使用 DocumentID 列作为分区列,必须将对DocGUID 强制执行 UNIQUE 约束的基础非聚集索引显式放置在文件组上,以便 DocumentID 列可以作为分区列。这意味着只有在执行分区切换之前禁用 UNIQUE 约束(因为它们是未对齐索引),然后再重新启用分区切换,才可能进行分区切换。
我想我会让 ROWGUID 保持原样,一个唯一的非聚集索引。
| 归档时间: |
|
| 查看次数: |
1062 次 |
| 最近记录: |