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 回答