none
Utilisation des vues partitionnées RRS feed

  • Question

  • Bonjour,

     

    J'essaie désespérément d'utiliser des vues partitionnées pour mettre à jour des tables relativement massives.

    Pour alléger les problématiques de backup, j'ai splitté mes tables sur 2 bases distinctes.

    J'ai construit mes tables comme suit:

    USE [BASE_003_SI]
    GO
    
    create table TEST2(
    champ1 varchar(10),
    champ2 varchar(10),
    champ3 varchar(10),
    champ4 varchar(10),
    champ5 varchar(10),
     CONSTRAINT [PK_TEST2_15] PRIMARY KEY 
    (
    	champ1 ASC,
    	champ5 ASC
    )
    )
    ALTER TABLE [dbo].[TEST2] WITH NOCHECK ADD CONSTRAINT [CHK_2_TEST2] CHECK (([champ5]='2'))
    GO
    ALTER TABLE [dbo].[TEST2] CHECK CONSTRAINT [CHK_2_TEST2]
    GO
    
    
    USE [BASE_004_SI]
    GO
    create table TEST3(
    champ1 varchar(10),
    champ2 varchar(10),
    champ3 varchar(10),
    champ4 varchar(10),
    champ5 varchar(10),
     CONSTRAINT [PK_TEST3_15] PRIMARY KEY 
    (
    	champ1 ASC,
    	champ5 ASC
    )
    )
    
    ALTER TABLE TEST3 WITH NOCHECK ADD CONSTRAINT [CHK_3_TEST3] CHECK (([champ5]='3'))
    GO
    ALTER TABLE TEST3 CHECK CONSTRAINT [CHK_3_TEST3]
    GO
    
    
    USE [BASE_002_SI]
    GO
    create view TESTVW AS SELECT * FROM BASE_003_SI.dbo.TEST2
    			UNION ALL SELECT * FROM BASE_004_SI.dbo.TEST3

    Lorsque j'essaie d'insérer une ligne dans ma vue:

    INSERT

     

    INTO TESTVW VALUES ('2','2','2','2','2')

    Il me renvoie l'erreur

    UNION ALL view 'BASE_002_SI.dbo.TESTVW' is not updatable because a partitioning column was not found.

    Pourtant, il me semblait que c'était fait pour.

    Pourriez-vous m'assister? Merci d'avance

    sOnO

    jeudi 8 juillet 2010 15:35

Réponses

Toutes les réponses