【发布时间】:2011-10-04 23:02:15
【问题描述】:
我正在构建一个将被分区并包含FILESTREAM 列的表。我遇到的问题是我必须有一个复合主键(FILE_ID 和FILE_UPLOADED_DATE),因为FILE_UPLOADED_DATE 是我的分区方案的一部分。那是对的吗?我不希望这是一个复合键,而只是将 FILE_ID 作为主键.....这可能只是一个用户错误吗?
任何建议将不胜感激。
版本:SQL Server 2008 R2
分区方案和功能:
CREATE PARTITION FUNCTION DocPartFunction (datetime)
AS RANGE RIGHT FOR VALUES ('20101220')
GO
CREATE PARTITION SCHEME DocPartScheme AS
PARTITION DocPartFunction TO (DATA_FG_20091231, DATA_FG_20101231);
GO
CREATE PARTITION SCHEME DocFSPartScheme AS
PARTITION DocPartFunction TO (FS_FG_20091231,FS_FG_20101231);
GO
创建语句:
CREATE TABLE [dbo].[FILE](
[FILE_ID] [int] IDENTITY(1,1) NOT NULL,
[DOCUMENT] [varbinary](max) FILESTREAM NULL,
[FILE_UPLOADED_DATE] [datetime] NOT NULL,
[FILE_INT] [int] NOT NULL,
[FILE_EXTENSION] [varchar](10) NULL,
[DocGUID] [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE ON [PRIMARY],
CONSTRAINT [PK_File] PRIMARY KEY CLUSTERED
( [FILE_ID] ASC
) ON DocPartScheme ([FILE_UPLOADED_DATE])
)ON DocPartScheme ([FILE_UPLOADED_DATE])
FILESTREAM_ON DocFSPartScheme;
如果我不包含FILE_UPLOADED_DATE,则会出错:
Msg 1908, Level 16, State 1, Line 1
Column 'FILE_UPLOADED_DATE' is partitioning column of the index 'PK_File'. Partition columns for a unique index must be a subset of the index key.
Msg 1750, Level 16, State 0, Line 1
Could not create constraint. See previous errors.
谢谢!
【问题讨论】:
标签: sql-server sql-server-2008 filestream