0

こんにちは、

オブジェクトが存在するかどうかを検証してから作成するために、C# で SMO オブジェクトを使用して簡単なスクリプトを作成するのに問題があります。このコードは、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;
        }
4

1 に答える 1

4

オブジェクトを実際に作成するには、行を追加する必要があると思います。現時点では、オブジェクトをインスタンス化しただけで、実際にデータベースを呼び出してリモート オブジェクトを作成したことはありません。

    Database TmpViewDB = new Database(TmpViewServer, DBName);
    TmpViewDB.Create();
于 2012-03-06T20:34:17.693 に答える