Можно автоматизировать создание сценариев для всех данных таблицы в виде операторов вставки, используя метод SMO Scripter.EnumScript
. Вот код, который я придумал.
Using conn As New SqlConnection(SqlServerConnectionString)
Dim smoConn As New ServerConnection(conn)
Dim smoServer As New Server(smoConn)
Dim smoDatabase As Database = smoServer.Databases(smoConn.DatabaseName)
Dim smoTables As SqlSmoObject() = New SqlSmoObject(2) {smoDatabase.Tables("Employee"), _
smoDatabase.Tables("Company"), _
smoDatabase.Tables("Job")}
Dim smoScripter As New Scripter(smoServer)
With smoScripter.Options
.ScriptData = True
.ScriptSchema = False
.IncludeDatabaseContext = False
.EnforceScriptingOptions = True
.SchemaQualify = False
End With
Dim outputScript As New StringBuilder()
For Each script As String In smoScripter.EnumScript(smoTables)
outputScript.Append(script)
Next
Return outputScript.ToString()
End Using
Немного поздно, чтобы помочь мне, я также нашел несколько других людей, которые обсуждали ту же проблему на форумах MSDN:
ScriptData не записывает данные в сценарий