Domanda

Sto scrivendo una piccola utilità per copiare un database da un database ODBC proprietario in un database SQL Server.Tutto funziona alla grande, tranne quando uso sqlbulkcopy per copiare i dati.Funziona nella maggior parte dei casi, ma non quando sta cercando di copiare un campo temporale in un DateTime SQL.Ottengo questo errore:

Il valore specificato del tipo TimeSpan dall'origine dati non può essere convertito in Digitare DateTime della colonna Target specificata.

Quando creo lo schema in SQL Server Devo effettuare i campi Data e Ora campi DateTime in SQL Server, quindi non c'è modo attorno a questo.Volevo usare sqlbulkcopy quindi non ho dovuto leggere manualmente ogni record in ogni tavolo e avvolgere la logica intorno ai casi speciali.Prima di scendere quella strada, c'è un altro modo in cui posso farlo?Non ho alcun controllo sullo schema o contenuto del database di origine.

È stato utile?

Soluzione

Suppongo che tu abbia a che fare con PRE-SQL Server 2008. SQL Server 2008 ha tipi di dati di data e ora.

Penso che dovresti usare un databilitabili che corrisponde allo schema di SQL Server e caricarlo dal tuo lettore di origine, modificando in modo appropriato il tempo a un datetime aggiungendo informazioni sulla data (ad esempio 1/1/1900).Quindi utilizzare Writetoserver (Datatabili).Potresti voler farlo in lotti, dal momento che potresti usare un gruppo di memoria che legge tutto in un datatable.

Qualsiasi motivo particolare che non puoi usare SSIS?

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