Ho un SQLClient.DataSet in VB.NET e voglio inserire l'intera cosa in una tabella di SQL Server senza dover fare quanto segue :È possibile inserire un'intera DataTable VB.NET in un server SQL in una volta
For Each dr as Datarow in MyDataset
Dim sc As New SqlCommand("INSERT INTO MyNewTable " & _
"VALUES (@column1, @column2)", MyDBConnection)
sc.Parameters.AddWithValue("@column1", dr.Item(0))
sc.Parameters.AddWithValue("@column2", dr.Item(1))
sc.ExecuteNonQuery()
Next
Dal momento che ho avuto quasi un milione di righe (tutti piuttosto magro, quindi non è molto spazio), io ovviamente non voglio correre questo ciclo e generare un milione di istruzioni INSERT.
So che un'opzione è quella di utilizzare un server collegato quando prelevo i dati inizialmente, poiché proviene da un altro server SQL, e basta averlo nell'INSERTO da lì. Tuttavia, se ho già i dati nella mia domanda, c'è un modo più efficiente per inserirli in blocco? Posso in qualche modo passare DataTable come parametro a SQL Server e farlo separare e inserire le righe?
Questo sembra essere esattamente quello che volevo. Non avevo idea che questa classe esistesse - grazie! – SqlRyan
Ha inserito tutti i record di un milione in circa quattro secondi: è perfetto. Grazie ancora! – SqlRyan