学习 SQL Server 啊 努力 奋斗-----------------------------------------------------

解决方案 »

  1.   

    ALTER TABLE [dbo].[t_2] WITH NOCHECK ADD CONSTRAINT [PK_t_2] PRIMARY KEY  CLUSTERED ([objectid],[g])  ON [PRIMARY] ,
    CONSTRAINT [CK_t_2] CHECK ([objectid] = '24' or [objectid] = '25')
    你把PK_t_2写成了PK_t_1
      

  2.   

    你的问题在于前边加上了WITH NOCHECK选项.重新创建表使用WITH CHECK选项就OK了.select objectid from t where objectid ='23' and g='1't_1.PK_t_1 100%不要使用
    ALTER TABLE [dbo].[t_1] 
    CHECK CONSTRAINT ALL这样还是没有优化分区视图.
      

  3.   

    还是不行,结果还是:
     t_1.PK_t_1 50%
     t_2.PK_t_2 50%
    但是可以往视图中插入数据。
    修改后脚本:
    CREATE TABLE [dbo].[t_1] ([objectid] [nvarchar] (50) NOT NULL ,[g] [nvarchar] (10) NOT 
    NULL ,[val] [int] NULL ) ON [PRIMARY]ALTER TABLE [dbo].[t_1] WITH CHECK ADD CONSTRAINT [PK_t_1] PRIMARY KEY  CLUSTERED ([objectid],[g])  ON [PRIMARY] ,
    CONSTRAINT [CK_t_1] CHECK ([objectid] = '23')CREATE TABLE [dbo].[t_2] ([objectid] [nvarchar] (50) NOT NULL ,[g] [nvarchar] (10) NOT 
    NULL ,[val] [int] NULL ) ON [PRIMARY]ALTER TABLE [dbo].[t_2] WITH CHECK ADD CONSTRAINT [PK_t_2] PRIMARY KEY  CLUSTERED ([objectid],[g])  ON [PRIMARY] ,
    CONSTRAINT [CK_t_2] CHECK ([objectid] = '24' or [objectid] = '25')      insert into t_1(objectid,g,val) values('23','1',6)
          insert into t_1(objectid,g,val) values('23','2',3)
          insert into t_2(objectid,g,val) values('24','1',1)
          insert into t_2(objectid,g,val) values('25','1',1)create view t as   
       select objectid , g,val from t_1 
       union all 
       select objectid , g,val from t_2select objectid from t where objectid ='23' and g=1
      

  4.   

    把select objectid from t where objectid ='23' and g=1
    改为
    select objectid from t where objectid ='23' and g='1'试一下
      

  5.   

    re:wudan8057(十年) 
    select objectid from t where objectid ='23' and g='1'是正确的;
    但是为什么?能否解释一下,谢谢!