Я пытаюсь экспортировать и импортировать схему базы данных и данные внутри. Для этого я использую SMO (объекты управления сервером), но хотя экспорт схемы работает нормально, установка ScriptData
на true
в параметрах сценария приведет к исключению.
Server server = new Server(new ServerConnection(sqlCon));
Database database = server.Databases["SpectroGrass"];
ScriptingOptions options = new ScriptingOptions();
options.ScriptSchema = true;
options.ScriptData = false;
options.ScriptDrops = false;
string scriptData = String.Join("\r\n", database.Tables[tableName].EnumScript(options).ToList());
Будет производить схему и работает.
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [SpectroGrassAdmin].[Treatment]
(
[TRM_ID] [int] NOT NULL,
[TRM_Name] [varchar](150) COLLATE Latin1_General_CI_AS NULL,
[TRM_Crop] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL
) ON [PRIMARY]
Но используя опцию ScriptData
...
options.ScriptSchema = false;
options.ScriptData = true;
options.ScriptDrops = false;
string scriptData = String.Join("\r\n", database.Tables[tableName].EnumScript(options).ToList());
сгенерирует исключение.
Ошибка входа для пользователя SpectroGrassAdmin.
Я не уверен, почему я получаю эту конкретную ошибку. Я могу только предположить, что проблема лежит где-то еще, потому что вход на сервер и подключение к базе данных работает нормально, если я хочу только экспортировать схему.
Мне не хватает некоторых других параметров, чтобы иметь возможность создать скрипт для данных таблицы?