try:CONSTRAINT [CK_member_1] CHECK ([idate] >= '2001-1-1') and [idate] <'2002-1-1')

解决方案 »

  1.   

    不行!你要这样:
    CREATE TABLE [dbo].[member_1] (
    [idate] [datetime] NOT NULL check(year([idate])=2001),
            [year] int not null default 2001 check([year]=2001),
            constraint pk_orders2001 primary key ([year],idate)
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[member_2] (
    [idate] [datetime] NOT NULL check(year([idate])=2002),
            [year] int not null default 2002 check([year]=2002),
            constraint pk_orders2001 primary key ([year],idate)
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[member_3] (
    [idate] [datetime] NOT NULL check(year([idate])=2003),
            [year] int not null default 2003 check([year]=2003),
            constraint pk_orders2001 primary key ([year],idate)
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[member_4] (
    [idate] [datetime] NOT NULL check(year([idate])=2004),
            [year] int not null default 2004 check([year]=2004),
            constraint pk_orders2001 primary key ([year],idate)
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[member_5] (
    [idate] [datetime] NOT NULL check(year([idate])=2005),
            [year] int not null default 2005 check([year]=2005),
            constraint pk_orders2001 primary key ([year],idate)
    ) ON [PRIMARY]
    GO
      

  2.   

    再用:select * from member where [year]=XXXX
    关于你的问题,你可以看一本清华的叫《SQL Server 存储过程、XML、HTML 高级指南》的书!上面和你的举例很相象!
      

  3.   

    大力:如果"预计执行计划"中, SQL不去搜索不符合check约束 的基表(看不到成本,只看到符合约束的基表),
    就可以说(确定)该分区视图是成功,是这样吗?
      

  4.   

    对!你必须在where条件中完全覆盖主键,且sql不会应为你的“计算”约束去反计算。在分区视图中也是比较忌讳between,>,<...的!