Per resettare l'ID di una lista sharepoint 2007 (MOSS) devi conneterti al database ed eseguire il seguente script.
L'unica condizione è che la lista non contenga più item, vanno prima cancellati.
Prima di eseguirla assicurati di essere sul corretto DB (di default inizia con STS_.... oppure WSS_Content o simile).
Agisce direttamente sul DB di SharePoint, presta molta attenzione.
Per sicurezza, la prima volta, esegui lo script commentando l'istruzione update
Prima di procedere Elimina completamente gli items dalla Recycle Bin (/sites/_layouts/AdminRecycleBin.aspx) altrimenti si crea un errore di violazione chiave con i nuovi inserimento
/*
* SharePoint 2007 MOSS
* Resetta l'ID della lista a 1
* solo se è vuota (non contiene item)
* 01-06-2007
* http://www.sgart.it
*/
DECLARE @Web nvarchar(128)
DECLARE @List nvarchar(128)
SET @Web = '' -- l'url relativo del sito senza '/' iniziale e finale
SET @List = 'Documents' -- il nome della lista
DECLARE @WebId uniqueidentifier
DECLARE @WebTitle nvarchar(128)
SELECT @WebId = id, @WebTitle=Title
FROM Webs
WHERE FullUrl = @Web
DECLARE @ListId uniqueidentifier
SELECT @ListId = ListId
FROM AllDocs
WHERE WebId = @WebId AND LeafName = @List
SELECT tp_title, tp_itemCount, tp_NextAvailableId,
tp_created, tp_ServerTemplate, tp_Description
FROM AllLists
WHERE tp_WebId = @WebId AND tp_Id = @ListId
IF @@rowcount > 1
BEGIN
SELECT 'Too lists'
END
ELSE
BEGIN
IF EXISTS(SELECT tp_itemCount
FROM AllLists
WHERE tp_WebId = @WebId AND tp_Id = @ListId
AND tp_itemCount = 0)
BEGIN
-- commentare l'istruzione update alla prima esecuzione
UPDATE AllLists
SET tp_NextAvailableId = 1
WHERE tp_WebId = @WebId AND tp_Id = @ListId
SELECT 'Reset ID to 1' AS MSG
SELECT tp_title, tp_itemCount, tp_NextAvailableId
FROM AllLists
WHERE tp_WebId = @WebId AND tp_Id = @ListId
END
ELSE
BEGIN
SELECT 'List Not empty' AS MSG
END
END