Ricerca 
it-ITen-US
Registrazione
Accedi
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:.
    Stampa     


DotNetWork Forums
[SQL Express] Trigger per l'inserimento dati
Ultimo Post 24 dic 2009 08.34 by Hidden. 2 Risposte.
Stampa immediata
Ordina:
PrevPrev ProssimoProssimo
Non sei autorizzato ad inviare una risposta.
Autore Messaggi Risolto

Posts:662

--
24 dic 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:662

--
24 dic 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:662

--
24 dic 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.
Non sei autorizzato ad inviare una risposta.

Active Forums 4.1
       
Articoli
Le nostre Librerie nella finestra .NET di Add reference
Come fare in modo di visualizzare le nostre librerie nella finestra .NET dell'Add Reference di Visual Studio
2008/07/27 | Autore: Sabrina Cosolo
Panoramica del Sistema dei Comandi
Come iniziare a capire com'è fatto WPF (parte 5)
2007/09/30 | Autore: Patrizia Cosolo
ADO.NET Funzionalità di base
Effettuare una ricerca su recordset disconnessi tramite DataView
2007/12/02 | Autore: Andrea Zingoni
Unit testing del codice (parte 2)
Generiamo alcuni unit test per la libreria Helper base ADO.NET
2008/03/09 | Autore: Sabrina Cosolo
Codedom Introduzione all'uso parte3
La classe Helper per le funzionalità CodeDom
2009/11/07 | Autore: Sabna Cosolo
ADO.Net Nozioni di base (parte 1)
Una libreria helper base per usare comandi diretti in SQL Server
2008/03/09 | Autore: Sabrina Cosolo
Miniguida alla OOP con il .NET Framework- Parte II
Le Classi e l'Incapsulamento.
2008/10/09 | Autore: Alberto De Luca 
Fritto Misto - Classi di uso comune(parte 4)
Helper: Una classe per il log di eventi, con evento, event handler, enumerazione.
2007/10/24 | Autore: Sabrina Cosolo
    Stampa     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Condizioni d'uso  .:.  Privacy  .:.  Accedi  .:.