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
Aiut per comando insert in sql server
mercoledì 13 settembre 2006 - 16.27
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bule
Profilo
| Junior Member
101
messaggi | Data Invio:
mer 13 set 2006 - 16:27
ciao a tutti ...credo di non aver capito molto bene come funziona il comando insert ecco il mio problema:
ho il seguente ciclo for che stupidamente inserisce, tramite il comando sqlcommand insert, 500 record in una semplice tabella(principale) con 5 colonne varchar
sqlConnection1.Open();
for(int i=1;i<=500;i++)
{
insert.CommandText = "insert into principale1(colonna1,colonna2,colonna3,colonna4) values('"+i.ToString() +"','2','3','4')";
insert.ExecuteNonQuery();
}
sqlConnection1.Close();
fino a qui tutto ok ma se rifaccio partire il ciclo le nuove 500 righe, uguali a quelle di prima, non vengono aggiunte sotto alle precedenti ma sparse dentro la tabella andando a posizionarsi anche al posto di qualcuna delle 500 precedenti..alla fine sono comunque presenti 1000 righe nel db ma non certo nell'ordine che mi aspettavo...
dove sbaglio?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 13 set 2006 - 16:35
>fino a qui tutto ok ma se rifaccio partire il ciclo le nuove
>500 righe, uguali a quelle di prima, non vengono aggiunte sotto
>alle precedenti ma sparse dentro la tabella andando a posizionarsi
>anche al posto di qualcuna delle 500 precedenti..alla fine sono
>comunque presenti 1000 righe nel db ma non certo nell'ordine
>che mi aspettavo...
>
>dove sbaglio?
Ciao bule,
sbagli nell'aspettarti le righe nell'ordine di inserimento.
In un rdbms il concetto di ordine delle righe non ha alcun senso.
La presenza di indici (clustered e non) ed il piano di esecuzione della query generato dal query processor sono tutti fattori che influiscono sull'ordinamento delle righe nel result set.
L'unico modo per ottenere un determinato ordinamento in una query di selezione, consiste nel specificare la clausola ORDER BY.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
bule
Profilo
| Junior Member
101
messaggi | Data Invio:
mer 13 set 2006 - 16:42
...mmm l'ho proprio sparata grossa dunque...
quindi l'importante è che i dati siano nel database , come questi mi verranno restituiti dipende solo da come chido che mi vengano restituiti perchè se faccio una semplice select * non è detto che sql server me li ritorni in ordine di inserimento...
grazie mille
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 13 set 2006 - 18:01
>quindi l'importante è che i dati siano nel database , come questi
>mi verranno restituiti dipende solo da come chido che mi vengano
>restituiti perchè se faccio una semplice select * non è detto
>che sql server me li ritorni in ordine di inserimento...
Esattissimo
>grazie mille
Prego.
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 !