Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Trigger banale ... per voi
lunedì 08 giugno 2009 - 15.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
dandi.box
Profilo
| Junior Member
178
messaggi | Data Invio:
lun 8 giu 2009 - 15:35
Ciao a tutti, altro problemino con un altro triggherino
ho una tabella in cui inserisco delle quantità che indicano quanti articoli sono inseriti in ogni ordine
per ogni insert/delete/modify vorrei aggiornare il campo Giacenza corrispondente all'articolo specifico (tramite un trigger)
mi date una mano?
per ogni articolo ho un campo giacenza che contiene la giacenza aggiornata...
CREATE TABLE [dbo].[Articoli](
[IDArticolo] [int] IDENTITY(1,1) NOT NULL,
[IDArticoloTipo] [varchar](2) COLLATE Latin1_General_CI_AS NULL,
[CodiceArticolo] [varchar](50) COLLATE Latin1_General_CI_AS NULL,
[DescrizioneArticolo] [varchar](200) COLLATE Latin1_General_CI_AS NULL,
[Modello] [varchar](100) COLLATE Latin1_General_CI_AS NULL,
[Fornitore] [varchar](200) COLLATE Latin1_General_CI_AS NULL,
[Giacenza] [int] NULL CONSTRAINT [DF_Articoli_Giacenza] DEFAULT ((0)),
CONSTRAINT [PK_AnagraficaArticoli] PRIMARY KEY CLUSTERED
(
[IDArticolo] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
ogni volta che inserisco un articolo devo incrementare la giacenza di quella quantità.... e quando cancello un record voglio eliminare tale quantità ... stesso discorso per l'update
CREATE TABLE [dbo].[AnagraficaArticoli](
[IDAnagraficaArticolo] [int] IDENTITY(1,1) NOT NULL,
[IDAnagrafica] [int] NULL,
[IDArticolo] [int] NULL,
[Quantita] [int] NULL,
CONSTRAINT [PK_AnagraficaArticoli_1] PRIMARY KEY CLUSTERED
(
[IDAnagraficaArticolo] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Grazie mille!!!
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 8 giu 2009 - 21:34
>Ciao a tutti, altro problemino con un altro triggherino
Ciao
>mi date una mano?
Cosa c'è che non capisci? hai letto per bene la sintassi di CREATE TRIGGER?
http://msdn.microsoft.com/it-it/library/ms189799.aspx
Semplicemente devi considerare le tabelle speciali create dall'operazione di trigger (inserted, deleted) in modo da leggere il valore della giacenza dell'articolo e poi eseguire una semplice update. Ma come sempre, preferisco una bella stored procedure per evitare di scrivere un trigger.
>Grazie mille!!!
di nulla!
--
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
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
dom 14 giu 2009 - 22:03
Il mio problema è che non so come impostare il trigger da zero :-((
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 15 giu 2009 - 01:46
>Il mio problema è che non so come impostare il trigger da zero :-((
ti rimando al link in cui ti ho illustrato un semplice modello di trigger:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=30949
Ricordati che tu puoi impostarlo a livello di tabella e quindi, puoi determinare la ridefinizione di un comando di UPDATE, INSERT o DELETE (tramite INSTEAD OF TRIGGERS) oppure puoi gestire delle logiche dopo i comandi (AFTER TRIGGER). A te servono i DML trigger (quelli relativi al DATA MODIFICATION, e non alla modifica della struttura, i DDL trigger) e quindi devi sapere che tramite essi vengono automaticamente create due tabelle virtuali, la deleted e la inserted. In base ai comandi che vai a gestire queste tabelle hanno al loro interno i valori delle righe che stai per inserire o per eliminare (nel caso dell'update, entrambi). Prova a seguire l'esempio dell'altro post, vedrai che ci arriviamo in fondo.
ciao,
--
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
Torna su
Stanze Forum
Elenco Threads
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 !