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!

È stato utile?

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

Trasferisci oggetto

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top