Использование библиотеки SMO ​​в SSIS 2008 - PullRequest
0 голосов
/ 07 марта 2012

Добрый день,

У меня возникли проблемы при написании простого скрипта с использованием объектов SMO в C #, чтобы проверить, существует ли объект, а затем создать его.Этот код находится в компоненте задачи сценария в службах SSIS.Код выполняется успешно, однако новая база данных не отображается в моем локальном экземпляре.Любая помощь будет принята с благодарностью.

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.Collections;
using System.Data.SqlClient;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;

        public void Main()
        {
            //String DBName = Dts.Variables["TmpViewDBName"].Value.ToString();
            //String Instance = Dts.Variables["TmpViewDBInstance"].Value.ToString();

            String DBName = "localhost";
            String Instance = "TmpViewDB";

            Server TmpViewServer = new Server(Instance);

            //Windows Auth
            TmpViewServer.ConnectionContext.LoginSecure = true;
            TmpViewServer.ConnectionContext.Connect();

            if (TmpViewServer.Databases[DBName] != null)
            {
                TmpViewServer.Databases[DBName].Drop();
            }

            Database TmpViewDB = new Database(TmpViewServer, DBName);

            if (TmpViewServer.ConnectionContext.IsOpen)

                    TmpViewServer.ConnectionContext.Disconnect();

            Dts.TaskResult = (int)ScriptResults.Success;
        }

1 Ответ

4 голосов
/ 07 марта 2012

Полагаю, вам нужно добавить строку, чтобы фактически создать объект. В его нынешнем виде вы только создали экземпляр объекта, но фактически никогда не обращались к базе данных для создания удаленного объекта.

    Database TmpViewDB = new Database(TmpViewServer, DBName);
    TmpViewDB.Create();
...