prova così:
ALTER TRIGGER dbo.TS_Parametri_Valore_CUIDF
ON dbo.[TS Parametri]
FOR UPDATE
AS
BEGIN
SET NOCOUNT ON;
-- ricavo la chiave
DECLARE @chiave nvarchar(50)
SELECT @chiave = inserted.Chiave FROM inserted
IF UPDATE(Valore) AND @chiave = 'CUIDF'
BEGIN
DECLARE @newValue nvarchar(255)
DECLARE @newValue_n int
DECLARE @oldValue nvarchar(255)
DECLARE @oldValue_n int
SET @oldValue_n = 0
SET @newValue_n = 0
-- prendo i nuovi ed i vecchi valori
SELECT @newValue = inserted.Valore FROM inserted
SELECT @oldValue = deleted.Valore FROM deleted
-- faccio il controllo solo se sono entrambi (nuovo e vecchio) numerici
IF ISNUMERIC(@newValue) = 1 AND ISNUMERIC(@oldValue) = 1
BEGIN
SET @newValue_n = CAST(@newValue AS int)
SET @oldValue_n = CAST(@oldValue AS int)
IF @newValue_n < @oldValue_n
ROLLBACK TRAN
END
END
END
GO
fammi sapere
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org