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
Sql server & visual studio 2003
lunedì 12 settembre 2005 - 14.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
totti240282
Profilo
| Guru
1.574
messaggi | Data Invio:
lun 12 set 2005 - 14:56
ciao vorre isapere uan cosa.se creo due tabelle una diciamo con
id campo campo e l'altra
id campo campo
e creo una relazione tra i due id ,se io inserisco un campo nella prima tabella ,l'id viene inserito anche nella seconda tabella ???
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 12 set 2005 - 16:40
>e creo una relazione tra i due id ,se io inserisco un campo nella
>prima tabella ,l'id viene inserito anche nella seconda tabella
> ???
Come fa SQL Server a sapere la logica di valorizzazione dell'altra tabella?
Supponiamo di avere una relazione 1 a molti tra le due tabelle.
Anche definendo un trigger di INSERT sulla tabella dalla parte 1 della relazione, il trigger sarà completamente all'oscuro sulla riga (o sulle righe) da inserire nella tabella molti.
Secondo me la domanda posta in questi termini è priva di senso.
E' compito dell'applicazione client popolare oppurtunamente le due tabelle.
Il COSTRAINT FOREIGN KEY fa solo in modo di garantire che il valore della foreign key della tabella molti appartenga alla primary key della tabella 1.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
totti240282
Profilo
| Guru
1.574
messaggi | Data Invio:
lun 12 set 2005 - 17:02
scusami mi sono accorto solo adesso che sono 28mb....
C'è solo un capitano !!!!!!
totti240282
Profilo
| Guru
1.574
messaggi | Data Invio:
lun 12 set 2005 - 17:04
scusate ho sbagliato risposta.
Alla fine ho risolto cosi inserisco una riga nella prima tabella ,leggo l'id e poi lo schiaffo anche nella seconda tabella.
C'è solo un capitano !!!!!!
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 12 set 2005 - 17:59
>Alla fine ho risolto cosi inserisco una riga nella prima tabella
> ,leggo l'id e poi lo schiaffo anche nella seconda tabella.
Che DBMS usi?
Come fai a recuperare l'ID?
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
totti240282
Profilo
| Guru
1.574
messaggi | Data Invio:
lun 12 set 2005 - 20:18
select id from nometabella where id=@@identity
uso sql server 2000
C'è solo un capitano !!!!!!
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 12 set 2005 - 20:58
>select id from nometabella where id=@@identity
>
>uso sql server 2000
Bene, allora ti sconsiglio di utilizzare quel metodo se non vuoi rischiare di recuperare un id sbagliato.
Se il comando di INSERT della tua sp agisce su una tabella con un trigger di INSERT che va ad aggiornare una seconda tabella con una colonna IDENTITY, la funzione @@IDENTITY ti restituirà il valore generato da quest'ultima tabella invece che quello determinato dalla tua operazione di inserimento.
Per ovviare a questo problema, SQL Server 2000 implementa la funzione SCOPE_IDENTITY() il cui scope è quello locale alla tua procedura/batch e quindi ti restituisce effettivamente il valore generato dalla tua operazione di INSERT.
Per maggiori informazioni leggi i seguenti paragrafi sui Books Online:
"@@IDENTITY"
http://msdn.microsoft.com/library/en-us/tsqlref/ts_globals_50u1.asp
"SCOPE_IDENTITY"
http://msdn.microsoft.com/library/en-us/tsqlref/ts_sa-ses_6n8p.asp
Per un esempio concreto simile al tuo leggi il seguente post:
http://groups.google.it/group/microsoft.public.it.sql/msg/5c85b3dcd6d71e6d
Infine questa è una interessante discussione sull'argomento:
http://groups.google.it/group/microsoft.public.it.sql/browse_frm/thread/869bb3a602007820/66e7e76caaab1948#66e7e76caaab1948
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
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 !