Ciclo con insert sql

martedì 29 luglio 2008 - 10.32

trinity Profilo | Guru

Ragazzi devo eseguire delle inser o delle update sql...un certo numero di vole indicato attraverso un parametro.
Mi spiego meglio:
ho creato una semplice stored di insert sql che viene richiamata da un'applicativo in vbnet. questa stored ha un parametro chiamato numerocomponenti e la insert deve essere eseguita per il numero di volte indicato nel parametro citato ossia se è 3 deve eseguire tre insert...voi mi consigliate di eseguire nell'applicativo un ciclo for che esegue la stored insert oppure vi è la possibilità di fare tutto tramite sql e se si come?

ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>ho creato una semplice stored di insert sql che viene richiamata
>da un'applicativo in vbnet. questa stored ha un parametro chiamato
>numerocomponenti e la insert deve essere eseguita per il numero
>di volte indicato nel parametro citato ossia se è 3 deve eseguire
>tre insert...voi mi consigliate di eseguire nell'applicativo
>un ciclo for che esegue la stored insert oppure vi è la possibilità
>di fare tutto tramite sql e se si come?
Ma le tre insert devono essere identiche?
Oppure sono tre righe prese da una tabella?
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

trinity Profilo | Guru

sono identiche cambia solo l'id chaive primaria identity autoincrement...
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>sono identiche cambia solo l'id chaive primaria identity autoincrement...
ok, a prescindere dal fatto che non capisco perchè devi fare delle insert identiche, non conoscendo la situazione reale, puoi evitare di fare dei cicli.
Puoi fare la insert prendendo i dati da una select. Ad esempio:
USE tempdb; GO CREATE TABLE destinazione ( ID int identity(1,1) PRIMARY KEY CLUSTERED , Valore1 varchar(10) NOT NULL , Valore2 varchar(10) NOT NULL ) GO DECLARE @Val1 varchar(10) DECLARE @Val2 varchar(10) SET @Val1 = 'Ale' SET @Val2 = 'Mike' INSERT INTO destinazione (Valore1, Valore2) SELECT @Val1, @Val2 UNION ALL SELECT @Val1, @Val2 UNION ALL SELECT @Val1, @Val2 SELECT * FROM destinazione DROP TABLE destinazione GO
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

trinity Profilo | Guru

ti spiego hai ragione altrimenti non è chiaro.
Allora ho creato un'applicativo che viene dato agli alberghi essi come saprai devo inserire le persone che arrivano nella struttura, se arrivano 10 italiani prima scrivevo un solo record con il numero di persono=10 ma nel corso del tempo ho notato che la gestione diventa difficilissima in quanto queste persone devono pure partire e il cliente poi vuole stampe gestione particolari allora è meglio avere n record dove vi sono sia la dataarrivo che di partenza quest'ultima verrebbe settata nel momento dell'effettiva partenza di un o tutte le persone:

ho creato questa tabella:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

solo che come dicevo pocanzi se arrivano 10 italiani io dovrei scrivere dieci record uguali, cambia solo l'id...posso ciclare dall'applicativo ma volevo qualcoda di + professionale
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>solo che come dicevo pocanzi se arrivano 10 italiani io dovrei
>scrivere dieci record uguali, cambia solo l'id...posso ciclare
>dall'applicativo ma volevo qualcoda di + professionale
Sinceramente penserei a registrare l'anagrafica degli utenti, inserendo ogni utente che fa il booking. E quindi poi, dentro alla tabella avresti utente per utente.. Comunque, visto che hai già seguito una strada diversa, il ciclo lo farei lato applicativo.. e chiamerei una sp che fa solo la insert..

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

trinity Profilo | Guru

ok, non posso fare come dici tu in quanto il mio progetto e parallelo al vero e proprio gestionale con tanto di anagrafiche ma che non è di mia proprietà

ciao grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5