Trigger

lunedì 20 dicembre 2010 - 15.57
Tag Elenco Tags  Windows Server 2008 R2  |  SQL Server 2008 R2

iif Profilo | Expert

Ciao, vorrei inserire un trigger dopo l'inserimento di un record.
Il trigger è questo


USE [DB_SPEDIREWEB]
GO
/****** Object: Trigger [dbo].[ImpostaAssicurazione] Script Date: 12/20/2010 15:41:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER TRIGGER [dbo].[ImpostaAssicurazione]
ON [dbo].[TB_ORDINI]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

IF CAST(tb_ordini.assicurazione AS INTEGER) <= 1500
UPDATE TB_ORDINI SET assicurazione_rev = assicurazione WHERE IDORDINE=@@IDENTITY
UPDATE TB_ORDINI SET assicurazione = '0' WHERE IDORDINE=@@IDENTITY
END

Mi ritorna il seguente errore:

The multi-part identifier "tb_ordini.assicurazione" could not be bound.

Non capisco dove sbaglio.
Grazie.

boccia75 Profilo | Junior Member

A me puzza tanto quella if....
Perchè non provi a scriverla così:
IF ((select CAST(assicurazione AS INTEGER) from INSERTED) <= 1500)
In fin dei conti ti dice che non sa dove andare a prendere quel valore, in questo modo dovrebbe andare...
Un'ultima cosa: così coma l'hai scritta l'if vincola solo il primo update, il secondo viene fatto comunque, è quello che volevi fare?
Ciao,
Luca

lbenaglia Profilo | Guru

>Non capisco dove sbaglio.
Posta un esempio completo con la struttura della tabella (CREATE TABLE), alcune righe di prova (INSERT INTO) con il relativo risultato atteso.

>Grazie.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5