Come si copia un database MS SQL 2000 a livello di codice usando C #?
-
05-07-2019 - |
Domanda
Devo copiare diverse tabelle da un DB all'altro in SQL Server 2000, usando C # (VS 2005). La chiamata deve essere parametrizzata: devo essere in grado di passare il nome del database in cui copierò queste tabelle.
Potrei usare DTS con i parametri, ma non riesco a trovare alcun codice di esempio che fa questo da C #.
In alternativa, potrei semplicemente usare
drop table TableName
select * into TableName from SourceDB..TableName
e poi ricostruisci gli indici ecc., ma questo è davvero kludgy.
Altre idee?
Grazie!
Soluzione
Per SQL Server 7.0 e 2000, abbiamo SQLDMO per questo. Per SQL Server 2005 esiste SMO. Questo ti permette di fare praticamente tutto ciò che riguarda l'amministrazione del database, lo scripting degli oggetti, l'enumerazione dei database e molto altro. Questo è meglio, IMO, che provare a "tirare il tuo" approccio.
SQL 2000: Sviluppo di applicazioni SQL-DMO
SQL 2005: Ecco la pagina principale SMO: Microsoft SQL Server Management Objects (SMO)
Ecco la funzionalità di trasferimento: Trasferimento di dati
Procedura: trasferire schemi e dati da un database a un altro in Visual Basic .NET
Altri suggerimenti
Se la tabella di destinazione viene eliminata ogni volta, perché non selezionare SELECT INTO? Non sembra affatto un kludge.
Se funziona bene e spunta tutte le caselle dei requisiti perché creare un lavoro che valga la pena di fare giorni per fare esattamente la stessa cosa?
Lascia che SQL faccia tutto il lavoro pesante per te.
Potresti mettere gli script (copia db) trovati qui
http://www.codeproject.com/KB/database/CreateDatabaseScript.aspx
In un'applicazione. Sostituisci semplicemente la destinazione. Per spostare effettivamente il database entite, SEGUI
http://support.microsoft.com/kb/314546
Ma ricorda, il database deve essere portato prima offline.
Grazie