SQL Server 2008 предоставляет возможность создавать сценарии для данных в виде инструкций Insert с помощью параметра Generate Scripts в Management Studio. Можно ли получить доступ к тем же функциям из пакета служб SSIS?
Вот что я пытаюсь сделать:
У меня есть запланированное задание, которое запускается каждую ночь и создает сценарии для всей схемы и данных из базы данных SQL Server 2008. Затем он использует сценарий для создания базы данных mirror copy SQLCE 3.5. Я использовал нараяну Вьяса Кондредди sp_generate_inserts для этого, но у нее есть проблемы с несколькими типами данных, а также проблемы с обработкой более 4000 столбцов (пережитки SQL Server 2000 дней).
Похоже, что функция Script Data могла бы решить мои проблемы, если бы я только мог ее автоматизировать.
Какие-либо предложения?
Ответ 1 · рейтинг 2 · ErikEJ
Используйте мою утилиту командной строки Export2SqlCE, которая записывает как данные, так и схему в SQL Compact, совместимый сценарий. SMO не поддерживает синтаксис SQL Compact и преобразование типов данных.
Ответ 2 · рейтинг 3 · Community
С помощью метода SMO Scripter.EnumScript можно автоматизировать создание сценариев для всех данных таблицы в виде операторов Insert. Вот код, который я придумал.
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 не данные скрипта