Help on Partitioning column was not found.

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Sonny

    Help on Partitioning column was not found.

    Hi,

    I don't know if I missed anything. I have 2 member tables and one
    partition view in SQL 2000 defined as following

    CREATE VIEW Server1.dbo.UTa ble
    AS
    SELECT *
    FROM Server1..pTable 1
    UNION ALL
    SELECT *
    FROM Server2..pTable 2

    CREATE TABLE pTable1 (
    [ID1] [int] IDENTITY (1000, 2) NOT NULL ,
    [ID2] [int] NOT NULL ,

    ...<other columns>....... ..

    CONSTRAINT [PK_tblLot] PRIMARY KEY CLUSTERED
    (
    [ID1],
    [ID2]
    ) ON [PRIMARY] ,
    CHECK ([ID2] = 1015)
    ) ON [PRIMARY]


    CREATE TABLE [pTable2] (
    [ID1] [int] IDENTITY (1001, 2) NOT NULL ,
    [ID2] [int] NOT NULL ,

    ...<other columns>....... ..

    CONSTRAINT [PK_tblLot] PRIMARY KEY NONCLUSTERED
    (
    [ID1],
    [ID2]
    ) WITH FILLFACTOR = 90 ON [PRIMARY] ,
    CHECK ([ID2] <1015)
    ) ON [PRIMARY]


    SELECT is working fine. However, I got error message if I issue an
    update command such as

    UPDATE UTable
    SET somecol = someval
    Where somecol2 = somecond

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

    Anyone have any idea? ID2 is my partition column, why the SQL 2K
    doesn't see it. It is a part of primary key, having checking
    constrain, and no other constrain on it. Am I missing something?

    Thanks a lot.

  • Tom Moreau

    #2
    Re: Help on Partitioning column was not found.

    You cannot have identity columns in an updatable partitioned view.

    --
    Tom

    ----------------------------------------------------
    Thomas A. Moreau, BSc, PhD, MCSE, MCDBA, MCITP, MCTS
    SQL Server MVP
    Toronto, ON Canada



    "Sonny" <SonnyKMI@gmail .comwrote in message
    news:1180643932 .644398.247270@ g37g2000prf.goo glegroups.com.. .
    Hi,

    I don't know if I missed anything. I have 2 member tables and one
    partition view in SQL 2000 defined as following

    CREATE VIEW Server1.dbo.UTa ble
    AS
    SELECT *
    FROM Server1..pTable 1
    UNION ALL
    SELECT *
    FROM Server2..pTable 2

    CREATE TABLE pTable1 (
    [ID1] [int] IDENTITY (1000, 2) NOT NULL ,
    [ID2] [int] NOT NULL ,

    ....<other columns>....... ..

    CONSTRAINT [PK_tblLot] PRIMARY KEY CLUSTERED
    (
    [ID1],
    [ID2]
    ) ON [PRIMARY] ,
    CHECK ([ID2] = 1015)
    ) ON [PRIMARY]


    CREATE TABLE [pTable2] (
    [ID1] [int] IDENTITY (1001, 2) NOT NULL ,
    [ID2] [int] NOT NULL ,

    ....<other columns>....... ..

    CONSTRAINT [PK_tblLot] PRIMARY KEY NONCLUSTERED
    (
    [ID1],
    [ID2]
    ) WITH FILLFACTOR = 90 ON [PRIMARY] ,
    CHECK ([ID2] <1015)
    ) ON [PRIMARY]


    SELECT is working fine. However, I got error message if I issue an
    update command such as

    UPDATE UTable
    SET somecol = someval
    Where somecol2 = somecond

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

    Anyone have any idea? ID2 is my partition column, why the SQL 2K
    doesn't see it. It is a part of primary key, having checking
    constrain, and no other constrain on it. Am I missing something?

    Thanks a lot.

    Comment

    • Sonny

      #3
      Re: Help on Partitioning column was not found.

      On May 31, 4:17 pm, "Tom Moreau" <t...@dont.spam .me.cips.cawrot e:
      You cannot have identity columns in an updatable partitioned view.
      >
      --
      Tom
      >
      ----------------------------------------------------
      Thomas A. Moreau, BSc, PhD, MCSE, MCDBA, MCITP, MCTS
      SQL Server MVP
      Toronto, ON Canadahttps://mvp.support.mic rosoft.com/profile/Tom.Moreau
      >
      In that case, how should I deal with the ID1? I need that column to
      be an identity column. Thanks.

      Comment

      • Tom Moreau

        #4
        Re: Help on Partitioning column was not found.

        Consider putting an INSTEAD OF trigger on the partitioned view.

        --
        Tom

        ----------------------------------------------------
        Thomas A. Moreau, BSc, PhD, MCSE, MCDBA, MCITP, MCTS
        SQL Server MVP
        Toronto, ON Canada



        "Sonny" <SonnyKMI@gmail .comwrote in message
        news:1180647134 .671664.320360@ a26g2000pre.goo glegroups.com.. .
        On May 31, 4:17 pm, "Tom Moreau" <t...@dont.spam .me.cips.cawrot e:
        You cannot have identity columns in an updatable partitioned view.
        >
        --
        Tom
        >
        ----------------------------------------------------
        Thomas A. Moreau, BSc, PhD, MCSE, MCDBA, MCITP, MCTS
        SQL Server MVP
        Toronto, ON Canadahttps://mvp.support.mic rosoft.com/profile/Tom.Moreau
        >
        In that case, how should I deal with the ID1? I need that column to
        be an identity column. Thanks.

        Comment

        • Erland Sommarskog

          #5
          Re: Help on Partitioning column was not found.

          Sonny (SonnyKMI@gmail .com) writes:
          Anyone have any idea? ID2 is my partition column, why the SQL 2K
          doesn't see it. It is a part of primary key, having checking
          constrain, and no other constrain on it. Am I missing something?
          Yes, <is not a permitted operator. You need to rewrite

          CHECK ([ID2] <1015)

          to

          CHECK ([ID2] < 1015 OR [ID2] 1015)

          Another story is whether this view will be very efficient. You should
          probably add an index on ID2, or put it first in the primary key.


          --
          Erland Sommarskog, SQL Server MVP, esquel@sommarsk og.se

          Books Online for SQL Server 2005 at

          Books Online for SQL Server 2000 at

          Comment

          • Erland Sommarskog

            #6
            Re: Help on Partitioning column was not found.

            Sonny (SonnyKMI@gmail .com) writes:
            In that case, how should I deal with the ID1? I need that column to
            be an identity column. Thanks.
            Oh, I should have added the the IDENTITY appears to work fine, as soon
            as I had changed the CHECK constraint.


            --
            Erland Sommarskog, SQL Server MVP, esquel@sommarsk og.se

            Books Online for SQL Server 2005 at

            Books Online for SQL Server 2000 at

            Comment

            • Sonny

              #7
              Re: Help on Partitioning column was not found.

              On May 31, 4:58 pm, Erland Sommarskog <esq...@sommars kog.sewrote:
              Sonny (Sonny...@gmail .com) writes:
              In that case, how should I deal with the ID1? I need that column to
              be an identity column. Thanks.
              >
              Oh, I should have added the the IDENTITY appears to work fine, as soon
              as I had changed the CHECK constraint.
              >
              --
              Erland Sommarskog, SQL Server MVP, esq...@sommarsk og.se
              >
              Books Online for SQL Server 2005 athttp://www.microsoft.c om/technet/prodtechnol/sql/2005/downloads/books...
              Books Online for SQL Server 2000 athttp://www.microsoft.c om/sql/prodinfo/previousversion s/books.mspx
              Thanks for all your help. I changed CHECK constraint, and now it is
              not complaining about missing partition column anymore, however, when
              do the Update or Insert it gives out Server: Msg 4450, Level 16, State
              1, Line 1
              Cannot update partitioned view 'UTable' because the definition of the
              view column 'ID1' in table '[pTable1]' has a IDENTITY constraint. So
              I think IDENTITY is the another issue. As Tom mentioned in his post,
              using INSTEAD OF trigger, would anyone please give me an example,
              never used before.

              Again, thank you very much for your help.

              Comment

              • Tom Moreau

                #8
                Re: Help on Partitioning column was not found.

                Check out:



                --
                Tom

                ----------------------------------------------------
                Thomas A. Moreau, BSc, PhD, MCSE, MCDBA, MCITP, MCTS
                SQL Server MVP
                Toronto, ON Canada



                "Sonny" <SonnyKMI@gmail .comwrote in message
                news:1180703291 .252760.209290@ a26g2000pre.goo glegroups.com.. .
                On May 31, 4:58 pm, Erland Sommarskog <esq...@sommars kog.sewrote:
                Sonny (Sonny...@gmail .com) writes:
                In that case, how should I deal with the ID1? I need that column to
                be an identity column. Thanks.
                >
                Oh, I should have added the the IDENTITY appears to work fine, as soon
                as I had changed the CHECK constraint.
                >
                --
                Erland Sommarskog, SQL Server MVP, esq...@sommarsk og.se
                >
                Books Online for SQL Server 2005
                athttp://www.microsoft.c om/technet/prodtechnol/sql/2005/downloads/books...
                Books Online for SQL Server 2000
                athttp://www.microsoft.c om/sql/prodinfo/previousversion s/books.mspx
                Thanks for all your help. I changed CHECK constraint, and now it is
                not complaining about missing partition column anymore, however, when
                do the Update or Insert it gives out Server: Msg 4450, Level 16, State
                1, Line 1
                Cannot update partitioned view 'UTable' because the definition of the
                view column 'ID1' in table '[pTable1]' has a IDENTITY constraint. So
                I think IDENTITY is the another issue. As Tom mentioned in his post,
                using INSTEAD OF trigger, would anyone please give me an example,
                never used before.

                Again, thank you very much for your help.

                Comment

                • Sonny

                  #9
                  Re: Help on Partitioning column was not found.

                  On Jun 1, 8:12 am, "Tom Moreau" <t...@dont.spam .me.cips.cawrot e:
                  Check out:
                  >

                  >
                  --
                  Tom
                  >
                  ----------------------------------------------------
                  Thomas A. Moreau, BSc, PhD, MCSE, MCDBA, MCITP, MCTS
                  SQL Server MVP
                  Toronto, ON Canadahttps://mvp.support.mic rosoft.com/profile/Tom.Moreau
                  >
                  "Sonny" <Sonny...@gmail .comwrote in message
                  >
                  news:1180703291 .252760.209290@ a26g2000pre.goo glegroups.com.. .
                  On May 31, 4:58 pm, Erland Sommarskog <esq...@sommars kog.sewrote:
                  >
                  Sonny (Sonny...@gmail .com) writes:
                  In that case, how should I deal with the ID1? I need that column to
                  be an identity column. Thanks.
                  >
                  Oh, I should have added the the IDENTITY appears to work fine, as soon
                  as I had changed the CHECK constraint.
                  >
                  --
                  Erland Sommarskog, SQL Server MVP, esq...@sommarsk og.se
                  >
                  Books Online for SQL Server 2005
                  athttp://www.microsoft.c om/technet/prodtechnol/sql/2005/downloads/books...
                  Books Online for SQL Server 2000
                  athttp://www.microsoft.c om/sql/prodinfo/previousversion s/books.mspx
                  >
                  Thanks for all your help. I changed CHECK constraint, and now it is
                  not complaining about missing partition column anymore, however, when
                  do the Update or Insert it gives out Server: Msg 4450, Level 16, State
                  1, Line 1
                  Cannot update partitioned view 'UTable' because the definition of the
                  view column 'ID1' in table '[pTable1]' has a IDENTITY constraint. So
                  I think IDENTITY is the another issue. As Tom mentioned in his post,
                  using INSTEAD OF trigger, would anyone please give me an example,
                  never used before.
                  >
                  Again, thank you very much for your help.
                  Thank you so much!!

                  Comment

                  Working...