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
[vb2005] duplicare tabella
mercoledì 17 ottobre 2007 - 04.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
adriano.carradore
Profilo
| Newbie
7
messaggi | Data Invio:
mer 17 ott 2007 - 04:36
Ho questa necessita, ho un database con sql express 2005, devo duplicare le tabelli un un'altro database che è praticamente uguale come struttura ma verrà filtrato per poi essere distribuito con solo i dati che servono.
Ora ho provato con la query
SELECT * INTO Nuova_Tabella [IN c:\database\nuovodb.mdf] FROM Tabella_Sorgente
ma non funge, mi da un errore di sitassi in prossimità di IN c:\database\nuovodb.mdf
dove sbaglio?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 17 ott 2007 - 08:40
>Ho questa necessita, ho un database con sql express 2005, devo
>duplicare le tabelli un un'altro database che è praticamente
>uguale come struttura ma verrà filtrato per poi essere distribuito
>con solo i dati che servono.
>Ora ho provato con la query
>
>SELECT * INTO Nuova_Tabella [IN c:\database\nuovodb.mdf] FROM
>Tabella_Sorgente
Ciao,
scusa ma non ho capito bene quello che vuoi fare..
Per caso vuoi replicare le strutture da un database all'altro facendo in modo che il database creato sia uguale a quello di partenza, per poi caricare solo alcuni dati?
Se sì, puoi utilizzare il wizard fornito da SSMS (anche Express) chiamato "Generate SQL Server Scripts Wizard". Non ti occorre altro che premere il tasto destro del mouse sul database di partenza --> Tasks (Attività in ita) --> Generate Scripts..
seguire gli step e farti generare tutti gli script degli oggetti..
Infine, riesegui quello script, spostandoti sul nuovo database precendentemente creato.
>
>
>
Alx81 =)
http://blogs.dotnethell.it/suxstellino
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mer 17 ott 2007 - 08:43
>Ho questa necessita, ho un database con sql express 2005, devo
>duplicare le tabelli un un'altro database che è praticamente
>uguale come struttura ma verrà filtrato per poi essere distribuito
>con solo i dati che servono.
>Ora ho provato con la query
>
>SELECT * INTO Nuova_Tabella [IN c:\database\nuovodb.mdf] FROM
>Tabella_Sorgente
>
>ma non funge, mi da un errore di sitassi in prossimità di IN
>c:\database\nuovodb.mdf
>dove sbaglio?
>
>
>
A questo link trovi una guida completa per creare tabelle con SQL, anche derivate da un'altra tabella (come nel tuo caso):
http://www.studiamo.it/dispense/informatica/sql/creare-tabelle.html
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 17 ott 2007 - 12:17
>Ora ho provato con la query
>
>SELECT * INTO Nuova_Tabella [IN c:\database\nuovodb.mdf] FROM
>Tabella_Sorgente
>
>ma non funge, mi da un errore di sitassi in prossimità di IN
>c:\database\nuovodb.mdf
>dove sbaglio?
Nella sintassi che è appunto invalida
Se il database di destinazione non esiste, la prima cosa che devi fare è crearlo.
Un metodo veloce consiste nell'eseguire un backup del db di origine e ripristinarlo con un nuovo nome sulla stessa istanza.
http://groups.google.it/group/microsoft.public.it.sql/msg/ec46c4e7c6c5fc6e
A questo punto hai tutti i dati del db di origine e non devi fare altro che eliminare quelli di troppo
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
adriano.carradore
Profilo
| Newbie
7
messaggi | Data Invio:
gio 18 ott 2007 - 04:07
Forse non mi sono spiegato, io non devo creare un database uguale al primo, percè gia c'è, io deve copiare i dati dal database A al database B.
Usando il wizard mi crea un script per crare le tabelle con il create table.
Facendo il backup e poi il restore per eliminare i record che non mi servono funziona la prima volta, se eseguo il backup la seconda volta senza chiudere l'applicazione scritta in VB2005 non mi permette di sovrascrivere il vecchio backup, anche se nella qury restore ho l'opzione replace.Girando per la rete ho trovato anche questa qury ma non funziona
USE SourceDB -- not needed if already in the source database's context
INSERT INTO TargetDB.dbo.TargetTable SELECT * FROM SourceTable
ma non funge mi dice
Impossibile aprire il database 'TargetDB' a causa di file inaccessibili oppure per memoria o spazio su disco insufficiente. Per ulteriori informazioni, vedere il log degli errori di SQL Server.
OK TROVATO PROBLEMA RISOLTO CON LA QUERY SCRITTA QUA SOPRA
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 !