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
Controllo su campo ... trigger o altro
domenica 01 giugno 2008 - 23.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
dom 1 giu 2008 - 23:56
Ciao, dovrei gestire una condizione su un campo decimal (18,2) basata sul valore contenuto in 3 campi decimal (18,2)
campi da controllare
Contratto
PreventivoUfficiale
PreventivoNonUfficiale
campo da aggiornare
TE_Cliente_K
che deve contenere rispettivamente
Contratto ... se questo campo è riempito (diverso da zero)
PreventivoUfficiale ... se questo campo è riempito (diverso da zero)
PreventivoNonUfficiale ... se questo campo è riempito (diverso da zero)
Ovviamente se è "riempito" il campo Contratto, è solo questo quello da considerare, in caso contrario il piu importante diventa il PreventivoUfficiale e se nessuno dei primi due è pieno basta controllare PreventivoNonUfficiale
Quindi se
Contratto 4
PreventivoUfficiale 5
PreventivoNonUfficiale 6
dovrò salvare/aggiornare il valore di contratto (perchè è quello piu importante)... anche se modifico i valori dei preventivi
se
Contratto
PreventivoUfficiale 5
PreventivoNonUfficiale 6
dovrò salvare il valore 5 ... anche se modifico il valore di PreventivoNonUfficiale
salverò 5 finche non avrò un valore nel campo Contratto ... e se verrà cancellato (impostato a zero) il valore di PreventivoUfficiale, dovrà inserire il valore di PreventivoNonUfficiale....
io ho provato con
[TE_Cliente_K] AS
CASE
WHEN [TE_PreventivoNonUfficiale] IS NOT NULL OR [TE_PreventivoNonUfficiale] > 0 THEN [TE_PreventivoNonUfficiale]
WHEN [TE_PreventivoUfficiale] IS NOT NULL OR [TE_PreventivoUfficiale] > 0 THEN [TE_PreventivoUfficiale]
WHEN [TE_Contratto] IS NOT NULL OR [TE_Contratto] > 0 THEN [TE_Contratto
END
Ma non sembra funzinare correttamente, ovvero: quando i campi sono tutti allo stato iniziale (0) funziona correttamente, ma quanto sono tutti pieni no
come posso gestire la mia situazione? (mi andrebbe benissimo anche un trigger!! (anzi... meglio!)
Grazie
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 2 giu 2008 - 15:21
>come posso gestire la mia situazione? (mi andrebbe benissimo
>anche un trigger!! (anzi... meglio!)
Motiva il tuo "anzi... meglio".
I trigger vanno utilizzati SOLO quando non esistono altre soluzioni (colonne calolate o constraint) dato che mantengono attiva la transazione fino al termine della loro esecuzione, aumentando la durata dei locks e di conseguenza creando potenziali problemi di deadlock e scalabilità dell'applicazione.
Su it.sql ti ho illustrato come procedere.
>Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
mar 3 giu 2008 - 13:58
Preferivo il trigger per abitudine!!
Scusa ma non posso connettermi al newsgroup
ho cercato di utilizzare la tua prima soluzione per gestire il problema dei 3 campi (condizione su 3 campi) ma mi sono perso
(purtroppo non mi connetto al newsgroup da questa postazione)
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 3 giu 2008 - 14:27
>Preferivo il trigger per abitudine!!
Brutta abitudine
>(purtroppo non mi connetto al newsgroup da questa postazione)
Google è tuo amico:
http://groups.google.it/group/microsoft.public.it.sql/msg/45d633f393466a88
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
mer 4 giu 2008 - 22:21
Grazie mille!!!
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 !