>Ciao a tutti sto utilizzando Microsoft SQL Server 2005 e vorrei
>creare una procedura che ogni qualvolta viene richiamata mi calcoli
>il valore massimo di un campo di tipo intero della mia tabella
>e me lo incrementi di una unità...
>
>è fattibile una cosa simile?
Io farei una funzione scalare
prendiamo come esempio questa tabella:
IF EXISTS (SELECT * FROM sys.tables WHERE object_id = object_id('Interi'))
DROP TABLE Interi
CREATE TABLE Interi
(
id int,
descrizione varchar(15)
)
-- popolo la tabella
INSERT Interi
SELECT 1,'DATO UNO'
INSERT Interi
SELECT 2,'DATO DUE'
INSERT Interi
SELECT 5,'DATO TRE'
INSERT Interi
SELECT 10,'DATO QUATTRO'
poi creiamo la seguente funzione:
CREATE FUNCTION dbo.ufn_TornaValore()
RETURNS int
AS
BEGIN
DECLARE @MaxVal int
SELECT @MaxVal = ISNULL(MAX(id),0) + 1 FROM Interi
RETURN @MaxVal
END
infine, per ricavare il massimo id + 1 basta richiamare la funzione:
SELECT dbo.ufn_TornaValore()
-- oppure
DECLARE @MioVal int
SELECT @MioVal = dbo.ufn_TornaValore()
>
>Grazie
Di nulla!
>Ciao!
Ciao!
Alx81 =)
http://blogs.dotnethell.it/suxstellino