Copia e backup database sql

martedì 21 giugno 2005 - 09.36

elenamrg Profilo | Newbie

Ciao a tutti!
sto cercando una query sql che mi permetta di salvare in un file .mdb i dati che voglio dalle tabelle che voglio di un DB SQL. Ho cercato ovunque ma non ho trovato nulla, qualcuno di voi sa dirmi come posso fare? Inoltre vorrei fare anche il BackUp di tutto il database sql sempre tramite query...ma anche qui...niente!!! AIUTOOOO!!!

Brainkiller Profilo | Guru

Ciao Elena,
ti rispono per una parte, poi vedo se è disponibile Lorenzo ti potrà fornire una risposta più dettagliata.
Quando mi è capitato di dover esportare dati da SQL ad Access ho proceduto tramite i DTS.
Apri l'Enterprise Manager, vai sul Database in questione, tasto destro "All Tasks", "Export Data", come sorgente usi il tuo database come destinazione imposti un Database di Access e selezioni tutte le tabelle.

ciao
david

elenamrg Profilo | Newbie

il problema è che io lo devo fare tramite codice vb.net. Mi spiego meglio: clicco su un pulsante e questo mi fa la copia dei dati che mi servono e me il esporta dal DB SQL su un file .mdb.

Brainkiller Profilo | Guru

Se crei su SQL un Package DTS e poi lo richiami da VB.NET ti potrebbe andare bene ?

ciao
david

lbenaglia Profilo | Guru

> sto cercando una query sql che mi permetta di salvare in un file .mdb
> i dati che voglio dalle tabelle che voglio di un DB SQL.

Ciao Elena,

SQL Server 2000 è in grado di effettuare importazioni ed esportazioni da fonti dati eterogenee.
I sistemi sono diversi e tutto sta nel trovare quello che si adatta meglio alle tue esigenze.
Prima di tutto ci serve capire se l'applicazione Visual Basic .NET risiede sulla stessa macchina che ospita SQL Server, oppure si tratta di un client che può risiedere indifferentemente sul server o su altri PC client.
In base alla risposta che ci darai, vedremo di "affinare la mira" :-)

> Inoltre vorrei fare anche il BackUp di tutto il database sql sempre tramite query...ma anche qui...niente!!! AIUTOOOO!!!
Beh, la documentazione c'è ed è abbondante, tutto sta nel cercare nel posto giusto.
I Books Online (BOL) sono in assoluto la fonte più ricca di informazioni per quanto riguarda SQL Server, e puoi scaricare la versione più aggiornata a partire dal seguente link:
http://www.microsoft.com/sql/techinfo/productdoc/2000/books.mspx

I BOL sono disponibili anche online, ed il comando T-SQL che ti permette di effettuare il backup di un database è appunto BACKUP DATABASE:
http://msdn.microsoft.com/library/en-us/tsqlref/ts_ba-bz_35ww.asp

Ti ricordo che la progettazione di una politica di backup *NON E'* a carico dell'utente finale, ma occorre studiare bene, implementare e soprattutto *TESTARE* le metodologie implementate lato server.
Fare eseguire il backup all'utente finale equivale a non fare alcun backup...

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

elenamrg Profilo | Newbie

L'applicazione VB.NET potrebbe risiedere sia sulla stessa macchina che ospita il server SQL (MSDE) sia su un Client di amministrazione.
Grazie tante per i link per il BackUp....mi saranno sicuramente utilissimi!!

lbenaglia Profilo | Guru

> L'applicazione VB.NET potrebbe risiedere sia sulla stessa macchina che ospita il server SQL (MSDE) sia su un Client di amministrazione.

Allora, dato che l'applicazione .NET può risiedere su un PC distinto da quello che ospita SQL Server, non puoi avvalerti dei DTS (inoltre MSDE può solo ospitare dei DTS sviluppati con il designer di una edizione superiore di SQL Server).

La vedo grigia :-)

Direi che ti devi gestire la cosa da codice, ovvero creare un mdb, creare le tabelle e popolarle manualmente in base alla logica implementata nella tua applicazione.


> Grazie tante per i link per il BackUp....mi saranno sicuramente utilissimi!!
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

markmark Profilo | Newbie

Non si potrebbero usare i dataset per fare da ponte tra i due DB? Non dovrebbe essere problematica la cosa o sbaglio?

markmark Profilo | Newbie

Non si potrebbero usare i dataset per fare da ponte tra i due DB? Non dovrebbe essere problematica la cosa o sbaglio?

softdream Profilo | Newbie

Mi ricollego a questo 3head.

Ho un problema quasi simile ma non mi interessa eseguire il backup delle tabelle Sql in MDB.
Devo semplicemente eseguire un backup direttamente da codice sulle maschere di Access.

Quello che devo fare è recuperare il backup delle tabelle del mio cliente per inviarle via internet tramite Access stesso.

Attualmente, fino a quando non utilizzavo SQL, per ricevere le tabelle del cliente, non facevo altro che inviare, alla pressione di un tasto, tutte le tabelle mdb Zippate sul nostro server.
A questo punto potevo modificare, correggere ecc.ecc. e poi riinviare le tabelle al cliente in maniera del tutto automatica.
Il cliente deve solamente premere un tasto.

Siccome sono nuovo nel mondo SQL ho pensato di fare cosi...
Da quando sono passato a SQL chiaramente non posso più inviare le tabelle MDB,
Siccome sono nuovo nel mondo SQL ho pensato di fare cosi... fare un backup del database
inviare quello backup al nostro server..
Correggere e modificare
e riinviare il backup al cliente per poi ripristinare il tutto.
Non so se esiste un altra procedura.. forse migliore ma attualmente è l'unica che mi viene in mente...

Da Sql creare un backup è abbastanza semplice.

BACKUP DATABASE [xxxxxx] TO DISK = N'C:\xxxxxxxx' WITH NO ecc. ecc....

Ma da Codice VBA come posso fare per inviare questa stringa ?
Inoltre... è Possibile inviarla direttamente da una macchina in rete ?
O necessariamente devo inviarla dalla macchina dove risiede SQL Express 2008 ?


Vi ringrazio infinitamente fin d'ora....


Enrico Pietrobon

softdream Profilo | Newbie

Scusate la mia ignoranza.....

Ho notato che la cosa è più semplice a farla che a dirla....

CNN.Open StringaAp
S = "BACKUP DATABASE [xxxxx] TO DISK = N'C:\BackupSQL\xxxxx' WITH ................"
CNN.Execute S


Per il ripristino penso sia la stessa cosa.....

Scusate nuovamente...


PS. A meno che ci sia un metodo più veloce per accedere alle Tabelle SQL via internet...

R3GM4ST3R Profilo | Junior Member

beh è un po' un "puttanaio" (passami il termine )
nel senso che dovresti fare una roba del tipo

'//Crea il file access usando ADOX
CreateFileMDB()
'//Per ogni tabella del dataset
for each tmp_table in dataset.tables
'//Aggiunge la tabella corrente al file MDB
ADOTABLE = AddMDB_Table()
'//per ogni colonna della tabella
for each tmp_Col in tmp_table.columns
'//inserisco il relativo NomeColonna e tipo dato nella tabella "ADOTABLE" creata nel file MDB
ADOTABLE.Columns.Append(tmp_Col.Name,tmp_ColTipoDato)
next
'//Successivamente importo tutte le righe della tabella
for each tmp_Row in tmp_table.rows
Insert(tmp_Row, ADOTABLE)
next
next

P.S. Non è sorgente, è pseudocodice, all'inizio del backup crea il file MDB, mi pare che questa soluzione sia un tantino onerosa per la macchina, consiglio di usare un backgroundworker per svolgere tale attività in modo che tale operazione venga eseguita in un thread separato dell'applicazione.

Ciao

softdream Profilo | Newbie

Bè ma a me non serve trasformare tutto in MDB....
Avendo comunque installato anche qui una copia di SQL io fasccio il backup del cliente Me lo invio, lo ripristino, controllo e modifico e poi lo rimando...

Siceramente non vedo l'utilità di trasformarlo in MDB, almeno nel mio caso...

R3GM4ST3R Profilo | Junior Member

@softdream

Se leggi il primo post lo capisci
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)
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