Erreur 2601 sur un index non unique
Le
Philip
Bonjour,
Notre système tourne sous sql2008, or il nous arrive pendant certains batchs
d'avoir l'erreur suivante :
Exécuté en tant qu'utilisateur : AUTORITE NT\SYSTEM. Impossible d'insérer
une ligne de clé en double dans l'objet 'dbo.composants_besoins' avec un
index unique 'IX_composants_besoins_2'. [SQLSTATE 23000] (erreur 2601)
L'instruction a été arrêtée. [SQLSTATE 01000] (erreur 3621). L'étape a
échoué.
or il s'avère que cet index n'est pas décaré comme unique, mais autorise les
doublons. Si on relance celui-ci aucun problème le batch se déroule
parfaitement.
Quelqu'un a-t'il une idée du problème ?
Cordialement
Notre système tourne sous sql2008, or il nous arrive pendant certains batchs
d'avoir l'erreur suivante :
Exécuté en tant qu'utilisateur : AUTORITE NT\SYSTEM. Impossible d'insérer
une ligne de clé en double dans l'objet 'dbo.composants_besoins' avec un
index unique 'IX_composants_besoins_2'. [SQLSTATE 23000] (erreur 2601)
L'instruction a été arrêtée. [SQLSTATE 01000] (erreur 3621). L'étape a
échoué.
or il s'avère que cet index n'est pas décaré comme unique, mais autorise les
doublons. Si on relance celui-ci aucun problème le batch se déroule
parfaitement.
Quelqu'un a-t'il une idée du problème ?
Cordialement

Poser une question


Pouvez nous nous poster le script de création de l'index ?
On y verra peut être un peu plus clair
++
--
MCDBA | MCTIP SQLSRV 2005
"Philip" wrote:
USE [pegase]
GO
/****** Object: Index [IX_composants_besoins_7] Script Date: 07/28/2009
09:03:19 ******/
CREATE NONCLUSTERED INDEX [IX_composants_besoins_7] ON
[dbo].[composants_besoins]
(
[site] ASC,
[date_commande] ASC,
[code_interne] ASC,
[besoin_type] 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, FILLFACTOR = 75) ON [PRIMARY]
GO
Le script de création que vous donnez concerne l'index nommé
'IX_composants_besoins_7'. Hors d'après le message d'erreur que vous donné,
c'est l'index 'IX_composants_besoins_2'
Vérifiez l'index 'IX_composants_besoins_2'.
++
--
MCDBA | MCITP SQLSRV 2005
"Philip" wrote:
index Non unique de cette table (le premier étant lui unique) !
USE [pegase]
GO
/****** Object: Index [IX_composants_besoins_2] Script Date: 07/28/2009
10:09:08 ******/
CREATE NONCLUSTERED INDEX [IX_composants_besoins_2] ON
[dbo].[composants_besoins]
(
[site] ASC,
[besoin_type] ASC,
[code_interne] 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, FILLFACTOR = 75) ON [PRIMARY]
GO
Merci encore,
Philip
Pouvez vous cette fois poster le script de votre table ?
++
--
MCDBA | MCTIP SQLSRV 2005
"Philip" wrote: