Ich versuche, eine Data Warehouse-Anwendung für die Verwendung meiner Firma mit einer partitionierten Datenimporttabelle einzurichten. Ich versuche, ältere Daten zu löschen und Platz für neue Daten zu schaffen. Das ist, wo ich diese Fehlermeldung immer bin:Fehler "Kein identischer Index" beim Wechseln der Datenpartition
Msg 4947, Level 16, State 1, Line 1 ALTER TABLE SWITCH statement failed. There is no identical index in source table 'AssetServer.dbo.IISLog061122' for the index 'IDX_IISLogPartitioned_IP' in target table 'AssetServer.dbo.IISLogPartitioned' .
Hier ist die Definition des Index sagt, es
dupliziert werden müssen/****** Objekt: Index [IDX_IISLogPartitioned_IP] Script Datum: 07/01/2009 10.44.45 ******/
CREATE NONCLUSTERED INDEX [IDX_IISLogPartitioned_IP] ON [dbo].[IISLogPartitioned] (
[c-ip] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
Und unten sehen Sie, dass ich einen identischen Index innerhalb der gespeicherten Prozedur erstellen. Ich habe überprüft, dass es erfolgreich erstellt wurde, aber die alter table-Anweisung schlägt mit der obigen Nachricht fehl. Die Hauptschleife des Stored-Verfahrens läuft auf:
ALTER PARTITION FUNCTION fnIISLogRequestTime() SPLIT RANGE ('20090612 01:59:59:000');
CREATE TABLE [dbo].[IISLog061201]
([RequestTime] [datetime] NULL,
[weekday] [int] NOT NULL,
[cs-method] [varchar](50) NOT NULL,
[cs-uri-stem] [varchar](255) NOT NULL,
[cs-uri-query] [varchar](2048) NULL,
[c-ip] [varchar](50) NOT NULL,
[cs(Referer)] [varchar](2048) NULL,
[cs-host] [varchar](255) NULL,
[sc-status] [int] NOT NULL,
[sc-substatus] [int] NULL,
[sc-bytes] [int] NULL,
[cs-bytes] [int] NULL,
[time-taken] [int] NULL,
[insertiontime] [datetime] NOT NULL,
[TimeSinceLast] [int] NULL,
[VIP] [varchar](50) NULL) ON [PRIMARY];
CREATE NONCLUSTERED INDEX [IDX_IISLogPartitioned_IP] ON [dbo].[IISLog061201](
[c-ip] ASC
) WITH (
PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF, ONLINE = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON);
ALTER TABLE [dbo].[IISLog061201] SWITCH TO IISLogPartitioned PARTITION 7
Wie kann ich diese Fehlermeldung loswerden?
Wenn Sie eine Antwort erhalten möchten, würde ich versuchen, wenn möglich zu vereinfachen. –
Ich ging voran und vereinfachte die gespeicherte Prozedur. –