Il seguente script rinumera tutti i cespiti presenti in archivio
DECLARE @Codice CHAR(5)
DECLARE @Categoria CHAR(3)
DECLARE @cmd NVARCHAR(500)
DECLARE @Conta INT
DECLARE @ContaA CHAR(5)
DECLARE Categoria CURSOR FOR
SELECT distinct CATEGORIA FROM CESPITI
ORDER BY CATEGORIA
OPEN Categoria
FETCH NEXT FROM Categoria INTO @Categoria
WHILE @@FETCH_STATUS = 0 BEGIN
SET @Conta = 0
SET @cmd = 'DECLARE Cespiti CURSOR FOR ' +
' SELECT CODICE FROM CESPITI ' +
' WHERE CATEGORIA=' + '''' + @Categoria + '''' +
' ORDER BY CODICE';
EXEC (@cmd)
OPEN Cespiti
FETCH NEXT FROM Cespiti INTO @Codice
WHILE @@FETCH_STATUS = 0 BEGIN
SET @Conta = @Conta + 1
SET @ContaA = Right('00000'+RTrim(LTrim(CAST(@Conta as CHAR(5)))),5)
SET @cmd = 'UPDATE CESPITI SET CODICE=' + '''' + @ContaA + ''''+ ',' +
' CODPADRE=' + '''' + @ContaA + '''' +
' WHERE CATEGORIA=' + '''' + @Categoria + '''' +
' AND CODICE=' + '''' + @Codice + ''''
EXEC (@cmd)
SET @cmd = 'UPDATE MOVCE SET CODCESPITE=' + '''' + @ContaA + ''''+ ',' +
' CODPADRE=' + '''' + @ContaA + '''' +
' WHERE CATEGORIA=' + '''' + @Categoria + '''' +
' AND CODCESPITE=' + '''' + @Codice + ''''
EXEC (@cmd)
FETCH NEXT FROM Cespiti INTO @Codice
END
CLOSE Cespiti
DEALLOCATE Cespiti
-- Allinea il numeratore
SET @Conta = @Conta + 1
SET @ContaA = Right('00000'+RTrim(LTrim(CAST(@Conta as CHAR(5)))),5)
SET @cmd = 'UPDATE NUCESP SET NUMEROCESP=' + '''' + @ContaA + '''' +
' WHERE CATEGORIA=' + '''' + @Categoria + '''';
EXEC (@cmd)
FETCH NEXT FROM Categoria INTO @Categoria
end
CLOSE Categoria
DEALLOCATE Categoria
venerdì 12 giugno 2015
Iscriviti a:
Post (Atom)