Ricerca 
it-ITen-US
Register
Login
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Print     


DotNetWork Forums
[SQL Express] Trigger per l'inserimento dati
Last Post 24 Dec 2009 08:34 by Hidden. 2 Replies.
Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages Resolved

Posts:663

--
24 Dec 2009 07:34  
Salve a tutti, vi scrivo in quanto mi sto addentando un pò di più in sql server express e avrei bisogno di una mano per capire come fare una determinata operazione. Allora vi spiego la situazione:
Nella mia azienda un dipendente che viene inserito viene anche codificato come magazzino es io per la mia azienda sono il dipendente francesco e il magazzino francesco. Questo perchè ad ogni dipendente è affidato del materiale.
Pertanto io nel mio programma quando veniva inserito un nuovo dipendente inserivo i dati del nuovo dipendente nella tabella dipendenti e in più in automatico inserivo nella tabella magazzino un nuovo magazzino con il codice del dipendete.
Questa operazione fino ad ora l'ho fatta fare al programma.
Quindi per fare il tutto inviavo al server 2 query una per l'iserimento del dipendente e l'altra per l'inserimento del magazzino.
Però dopo aver scoperto i trigger penso che sia un'operazione che possa essere fatta direttamete dal server così da velocizzare il programma. Quindi io a livello di programma non dovrò più preoccuparmi di popolare la tabella Magazzini.
Ho fatto qualche ricerca in giro ma non ho capito come dovrei impostare la cosa
questo è un pezzo di codice che ho trovato e che ho adattato


GO
CREATE TRIGGER [dbo].[INSERISCI_ANA]
ON
[dbo].[DIPENDENTI]
INSTEAD OF INSERT
AS
BEGIN
DECLARE @id NVARCHAR;
DECLARE @desc NVARCHAR;
@id=?????????
@desc=???????
INSERT INTO [dbo].[MAGAZZINI] (ID_MAGAZZINO, DESCRIZIONE) VALUES (@id, @DESC)
END


Questa è più o meno la sintassi ma come faccio a dire al trigger quali sono i dati da inserire nel tabella magazzini? COme faccio a fargli capire che sono gli ultimio inseriti?
 
Grazie a tutti per il vostro aiuto

p.s. Per creare il trigger devo fare crea nuova query e poi salvarla ho c'è una procedura diversa? Il trigger si attiverà da solo o comunque dovrò richiamarlo io?

Posts:663

--
24 Dec 2009 08:09  

Forse penso di aver trovato un soluzione ma non capisco perchè mi restituisce un errore nel momento in cui la eseguo. Vi spiego cosa faccio.

Faccio crea nuova query con connessione corrente poi scrivo questo codice

GO
CREATE TRIGGER CONTROLLO
ON
[dbo].[DIPENDENTI]
INSTEAD OF INSERT
AS
BEGIN
DECLARE
@id NCHAR , @desc NVARCHAR ;
SELECT @id=ID_DIPENDENTE, @desc=COGNOME FROM INSERTED;
INSERT INTO [dbo].[MAGAZZINI] (ID_MAGAZZINO, DESCRIZIONE) VALUES (@id, @DESC)
END

dopo aver scritto il codice ripotato sopra faccio click sul pulsante Esegui
e dopo mi restituisce il seguente errore

Messaggio 8197, livello 16, stato 4, procedura CONTROLLO, riga 1 L'oggetto 'dbo.DIPENDENTI' non esiste o non è valido per questa operazione.



Quindi il mio problema è : Dove sto sbagliando?
Ho capito che INSERTED è una tabella virtuale formata da un solo record che è quello che viene inserito in quel momento. Ma comunque mi genera un errore. Forse non è la procedura per creare i trigger? Potreste aiutarmi per paicere.

Grazie a tutti.

Posts:663

--
24 Dec 2009 08:34  
Scusate ragazzi ho risolto il problema. Mi spiego il trigger è scritto correttamente.
la procedura è corretta. Quello che sbagliavo era che quando facevo click sul pulsante esegui non mi ero accorto che nella casella affianco era selezionato un altro database e non il mio database.

Grazie comunque. Problema risolto.
You are not authorized to post a reply.

Active Forums 4.1
       
Articoli
Lavorare con i Generic - Led Control
Creare un controllo che simula i moduli LED
2007/11/11 | Author: Alberto De Luca
.NET e l'Interoperabilità COM
Come utilizzare Dll non referenziabili per convertire un documento Word in PDF
2008/07/05 | Author: Massimo Lofrano
Mixed fry - General Purpouse classes (part 4)
Helper: a class to Log events, with an event, event handler and enumeration
2007/10/24 | Author: Sabrina Cosolo
Starting from Scratch with WPF (Part 3)
Rows, deities, brushes and refrigerators (second part)
2007/11/22 | Author: Sabrina Cosolo
ASP.NET immagini dinamiche con HttpHandler
Costruiamo un HttpHandler per la creazione di immagini dinamiche
2007/10/24 | Author: Rudy Azzan
Codedom Getting Started part 1
How to generate automatically C# or VB code using CodeDom and the .NET framework
2009/11/07 | Author: Sabrina Cosolo
Iniziare da zero con WPF (Parte 2)
Iniziamo a scoprire gli oggetti Application e Window
2007/09/30 | Author: Sabrina Cosolo
Working with Arrays
The backpack problem
2007/07/29 | Author: Alberto De Luca
    Print     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Terms Of Use  .:.  Privacy Statement  .:.  Login  .:.