Skinnysite.net

... un modo di esprimersi.

Font Size

Cpanel

Homa Page di Daniele Franceschini

Inizializzare un contatore di una tabella.

Valutazione attuale:  / 0
ScarsoOttimo 

Potrebbe succedere che si renda necessario aggiungere un campo contatore all'interno di una tabella che inizialmente non era stato previsto. In questo caso, oltre ad aggiungere il campo, è necessario altresì inizializzarlo per poter avere dei valori sui campi dei records precedenti. Questa procedura permette la valorizzazione del nuovo campo che lo si imposterà come contatore. Dopo che i dati saranno presenti nella nuova colonna, sarà possibile ridefinirla come identity e continuerà; automaticamente ad aggiornasi.


SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE dbo.usp_InizializzaContatore as
declare @campocontatore bigint
declare @myId bigint

set @myid = 0
declare tblCur cursor for select campocontatore from tblcontatore WITH (XLOCK)
for update of campocontatore;
open tblCur;
fetch next from tblCur into @campocontatore
while @@FETCH_STATUS = 0
begin
set @myId = @myId + 1
-- print @myid
update tblcontatore set campocontatore = @myid
WHERE CURRENT OF tblCur ;
fetch next from tblCur into @campocontatore
end
close tblCur;
deallocate tblCur

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

Sei qui: Home Code Snippets Transact-SQL Inizializzare un contatore di una tabella.