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
Importazione di solo dati da excel a slqserver
lunedì 24 settembre 2012 - 15.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Zagor60
Profilo
| Junior Member
159
messaggi | Data Invio:
lun 24 set 2012 - 15:15
Salve,
ho creato una tabella vuota in sql server 2008 , questo perchè non mi avrebbe fatto effettuare le relazioni, adesso come faccio a trasferire solo i dati (i nomi dei campi sono per nome e per numero uguale a quelli della tabella in sql server )dal foglio excel a sql server.
Ho provato a trasferirli con questa codice:
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
go
SELECT * INTO Tabimbarchi FROM
OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:\imbarchi.xls', [imbarchi$])
ma oltre al trasferimento dei dati mi crea anche la tabella che poi non posso più modificare nel senso di creare le relazioni.
Chiedo se esiste un'altro sistema
Saluti
Giancarlo
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 24 set 2012 - 18:38
>Salve,
Ciao
>Ho provato a trasferirli con questa codice:
>ma oltre al trasferimento dei dati mi crea anche la tabella che
>poi non posso più modificare nel senso di creare le relazioni.
Questo perchè la clausola INTO nella SELECT crea la tabella al volo e inserisce i dati direttamente.
devi fare
INSERT INTO TuaTabella
SELECT...
>Saluti
ciao
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Zagor60
Profilo
| Junior Member
159
messaggi | Data Invio:
lun 24 set 2012 - 18:56
Grazie per la risposta,
ma non capisco,
INSERT INTO TuaTabella OK
SELECT... cosa devo aggiungere?
saluti
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 24 set 2012 - 18:58
>INSERT INTO TuaTabella OK
>SELECT... cosa devo aggiungere?
il risultato di quella select è il resultset che va ad inserire dati nella TuaTabella:
INSERT INTO TuaTabella
SELECT Campi FROM OPENROWSET...
devi invece togliere la clausola INTO dalla select, perchè quella CREA LA TABELLA E LA POPOLA, che non è quello che ti serve.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Zagor60
Profilo
| Junior Member
159
messaggi | Data Invio:
lun 24 set 2012 - 22:09
salve,
funziona ,però ho emesso il fatto che se io inserisco una chiave prima e poi una relazione con un'altra tabella , se la tabella è vuota tutto ok, se invece eseguo il codice Insert into...., mi da lo stesso errore di quando effettuo la relazione con in campi della tabella con dati all'interno e precisamente:
Tabella 'Tabdati' salvata
Tabella 'Tabimbarchi'
- Impossibile creare la relazione 'FK_Tabimbarchi_Tabdati'.
L'istruzione ALTER TABLE è in conflitto con il vincolo FOREIGN KEY "FK_Tabimbarchi_Tabdati". Il conflitto si è verificato nella tabella "dbo.Tabdati", column 'Codice' del database "matrixData".
Come posso fare?
Saluti
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 25 set 2012 - 14:31
>funziona ,però ho emesso il fatto che se io inserisco una chiave
>prima e poi una relazione con un'altra tabella , se la tabella
>è vuota tutto ok, se invece eseguo il codice Insert into....,
>mi da lo stesso errore di quando effettuo la relazione con in
>campi della tabella con dati all'interno e precisamente:
>Come posso fare?
Eh questo è un problema risolvibile solo da te.
Nel senso, se fai una relazione e quindi crei anche un vincolo di chiave esterna (FK) devi per forza prima inserire i valori ammessi sulla tabella di "dominio" (la partent della relazione) e poi inserire record nella tabella "figlia" con valori ammessi dal dominio nel campo in cui c'è la relazione. Altrimenti riceverai sempre quell'errore, è un vincolo di integrità referenziale che, per fortuna, previene inserimenti che rendono quanto da te creato non logicamente coerente.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Zagor60
Profilo
| Junior Member
159
messaggi | Data Invio:
mar 25 set 2012 - 14:58
Ciao,
allora io ho due tabelle :
tabella dati
iddati int
codice int (chiave primaria)
cognome
........
tabella imbarchi
idimbarchi int (chiave primaria)
codice int
cognome
........
la relazione che devo creare è uno a molti nel senso che una persona (tabdati) effettua più imbarchi(tabimbarchi) .
se elimino i dati da entrambe le tabelle funziona, ma se lascio almeno una con dati mi da errore.
siccome ci sono tanti dati inseriti non vorrei mettermi li a copiarli, credo che un modo ci sarà di esportare dati on le relazioni già effettuate.
Saluti
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 25 set 2012 - 15:01
>Ciao,
>
>allora io ho due tabelle :
>la relazione che devo creare è uno a molti nel senso che una
>persona (tabdati) effettua più imbarchi(tabimbarchi) .
Quali sono i campi in relazione?
>se elimino i dati da entrambe le tabelle funziona, ma se lascio almeno una con dati mi da errore.
>siccome ci sono tanti dati inseriti non vorrei mettermi li a
>copiarli, credo che un modo ci sarà di esportare dati on le relazioni
>già effettuate.
Se c'è una relazione, devi rispettare il vincolo.
Altrimenti elimina il vincolo ma è quello che vuoi?
Magari non ti sto seguendo, puoi farmi un esempio di dati concreto? Se c'è un vincolo di FK devi seguire l'ordine corretto degli inserimenti.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Zagor60
Profilo
| Junior Member
159
messaggi | Data Invio:
mar 25 set 2012 - 15:08
ciao,
esempio
tabella dati
iddati 100
codice 200 (chiave prmaria)
cognome rossi
tabella imbarchi
idimbarchi 130
codice 200
imbarco 12/05/2012
sbarco 12/09/2012
per il solo personale (rossi) effettua molti imbarchi/sbarchi quindi relazine uno a molti
Secondo te fare la relazione intendo come chiavi primarie e FK
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 25 set 2012 - 15:24
>Secondo te fare la relazione intendo come chiavi primarie e FK
immagino che il campo sia "codice".
Detto questo, PRIMA devi inserire nella tab "dati" e solo dopo puoi inserire gli imbarchi
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Zagor60
Profilo
| Junior Member
159
messaggi | Data Invio:
mar 25 set 2012 - 15:48
Ciao,
niente, quando vado ad inserire i dati con la funzione INSERT INTO mi dà il solito errore
Messaggio 547, livello 16, stato 0, riga 1
L'istruzione INSERT è in conflitto con il vincolo FOREIGN KEY "FK_tabimbarchi_Tabdati". Il conflitto si è verificato nella tabella "dbo.Tabdati", column 'Codice' del database "matrixData".
Ho provato as inserire degli imbarchi nella tabella vuota e mi da lo stesso errore quindi è un problema di relazioni, puoi aiutarmi nel senso che se ho
tab dati
iddati
codice
nome
tab imbarchi
idimbarchi
codice
data_imbarco
ecc
come posso creare la relazione 1 a molti?
saluti
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
ven 28 set 2012 - 11:05
>Ciao,
>come posso creare la relazione 1 a molti?
Zagor60, non posso dirti molto. C'è una relazione che stai violando. Stai cercando di inserire valori nella parte molti che non hanno rispettivi padri già esistenti.
L'errore è quello di violazione di FK, e o lo togli, o lo rispetti. La relazione 1:N è già esistente.
Come ti ho detto PRIMA devi caricare i padri e poi i figli.
Altrimenti il constraint va tolto, ma perdi di integrità referenziale.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi
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 !