Per resettare l'ID di una lista sharepoint 2007 (MOSS) devi connetterti al database ed eseguire il seguente script.
L'unica condizione è che la lista non contenga nessun 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

SQL

/* 
 * 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
Tags:
Database75 SharePoint498 SharePoint 2007218 T-SQL66
Potrebbe interessarti anche: