Home All Groups Group Topic Archive Search About

can't inser rows in partionied views

Author
10 Aug 2006 4:20 PM
dadbhawala
I cant insert new rows through the view for the following tables and
view...

FOR EXAMPLE THE FOLLOWING INSERT STATEMENTS give error

insert into states
values( '1','john','CA' )
insert into states
values( '2','MARY','NY' )

Server: Msg 4436, Level 16, State 12, Line 1
UNION ALL view 'STATES' is not updatable because a partitioning column
was not found.
Server: Msg 4436, Level 16, State 1, Line 1
UNION ALL view 'STATES' is not updatable because a partitioning column
was not found.

BTW I have sql server developer edition 2000
Please help...
Thanks
Dharmesh




CREATE TABLE [dbo].[CA] (
    [ID] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [NAME] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [STATE] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[NY] (
    [ID] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [NAME] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [STATE] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[CA] WITH NOCHECK ADD
    CONSTRAINT [PK_CA] PRIMARY KEY  CLUSTERED
    (
        [ID],
        [STATE]
    )  ON [PRIMARY] ,
    CONSTRAINT [CK_CA] CHECK ([STATE] = 'CA')
GO

ALTER TABLE [dbo].[NY] WITH NOCHECK ADD
    CONSTRAINT [PK_NY] PRIMARY KEY  CLUSTERED
    (
        [ID],
        [STATE]
    )  ON [PRIMARY] ,
    CONSTRAINT [CK_NY] CHECK ([STATE] = 'NY')
GO

CREATE VIEW dbo.STATES
AS
SELECT ID, NAME, STATE
FROM  dbo.CA
UNION ALL
SELECT ID, NAME, STATE
FROM  dbo.NY

Author
10 Aug 2006 4:57 PM
Stu
Your primary key constraints cannot have NOCHECK enabled in order for
partitioning to work.

HTH,
Stu

dadbhaw***@gmail.com wrote:
Show quote
> I cant insert new rows through the view for the following tables and
> view...
>
> FOR EXAMPLE THE FOLLOWING INSERT STATEMENTS give error
>
> insert into states
> values( '1','john','CA' )
> insert into states
> values( '2','MARY','NY' )
>
> Server: Msg 4436, Level 16, State 12, Line 1
> UNION ALL view 'STATES' is not updatable because a partitioning column
> was not found.
> Server: Msg 4436, Level 16, State 1, Line 1
> UNION ALL view 'STATES' is not updatable because a partitioning column
> was not found.
>
> BTW I have sql server developer edition 2000
> Please help...
> Thanks
> Dharmesh
>
>
>
>
> CREATE TABLE [dbo].[CA] (
>     [ID] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
>     [NAME] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
>     [STATE] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
> CREATE TABLE [dbo].[NY] (
>     [ID] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
>     [NAME] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
>     [STATE] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
> ALTER TABLE [dbo].[CA] WITH NOCHECK ADD
>     CONSTRAINT [PK_CA] PRIMARY KEY  CLUSTERED
>     (
>         [ID],
>         [STATE]
>     )  ON [PRIMARY] ,
>     CONSTRAINT [CK_CA] CHECK ([STATE] = 'CA')
> GO
>
> ALTER TABLE [dbo].[NY] WITH NOCHECK ADD
>     CONSTRAINT [PK_NY] PRIMARY KEY  CLUSTERED
>     (
>         [ID],
>         [STATE]
>     )  ON [PRIMARY] ,
>     CONSTRAINT [CK_NY] CHECK ([STATE] = 'NY')
> GO
>
> CREATE VIEW dbo.STATES
> AS
> SELECT ID, NAME, STATE
> FROM  dbo.CA
> UNION ALL
> SELECT ID, NAME, STATE
> FROM  dbo.NY

AddThis Social Bookmark Button