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
Bloccare record di una tabella
giovedì 20 luglio 2006 - 20.30
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
gio 20 lug 2006 - 20:30
salve, volevo sapere se e' possibile bloccare, quindi rendere immuni da qualsiasi modifica specifici record di una tabella allo scatenarsi di un evento ad esempio un UPDATE:
volevo sapere se questa cose e' gestibile da database invece che da apply, vedi anche
thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=9213
saluti
ENzo
us01739
Profilo
| Expert
641
messaggi | Data Invio:
ven 21 lug 2006 - 08:27
Bisogna creare un TRIGGER associato allo statement UPDATE.
Lo puoi fare in TSQL, quindi sul database e non nell'applicazione
es:
CREATE TRIGGER customer_update
ON customer
FOR UPDATE
AS
.............
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
ven 21 lug 2006 - 08:56
e' dopo l'AS che sorge il problema!!
us01739
Profilo
| Expert
641
messaggi | Data Invio:
ven 21 lug 2006 - 09:20
Esempio:
CREATE TRIGGER customer_update
ON customer
FOR UPDATE
AS
DECLARE @LastName NVARCHAR(20)
SELECT @LastName = LastName FROM deleted
IF @LastName = "PINCOPALLINO"
BEGIN
ROLLBACK TRANSACTION
END
ELSE
BEGIN
...... update da eseguire .....
END
PS: la delete è una speciale tabella temporanea che contiene il vecchio record prima della modifica; se ti servisse, la inserted contiene invece il record dopo la modifica.
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
ven 21 lug 2006 - 09:29
molte grazie ora mi e' piu' chiaro
, ma poi una volta bloccato il record se tento di effettuare l'update del record via Apply ad esempio nel datagrid cosa succedera'??
us01739
Profilo
| Expert
641
messaggi | Data Invio:
ven 21 lug 2006 - 09:36
Attenzione!! Non vorrei averti portato sulla strada sbagliata: questo modo non "blocca" un record per evitare che accada un deadlock, ma serve per mantenere l'integrità dei dati.
Mi spiego meglio:
al "database" non importa come i dati vengono mofificati (EM,QA, applicazione, ecc..), in quanto sà che deve intervenire per bloccare qualsiasi operazione che cerca di modificare un record della tabella customer dove il valore della colonna lastname è "PINCOPALLINO"
Spero di esserti stato utilile....
PS: impostata così funziona nel caso di update e non di delete ecc...
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
bluland
Profilo
| Guru
1.149
messaggi | Data Invio:
ven 21 lug 2006 - 10:14
ho capito grazie
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 !