如何获得SQL JobStep连接字符串(How to get SQL JobStep connec

2019-10-17 15:22发布

之后,我得到了服务器的工作,我得到了各作业步骤我想与每一步骤的连接字符串,你可以找到它,而在这样的作业打开SQL Management Studio中:

是有一个合适的方式来获得每个包的C#代码中的连接字符串?

ServerConnection conn = new ServerConnection("localhost");
//new SqlConnection("data source=localhost;initial catalog=CPEInventory_20101122;integrated security=True;"));
Server server = new Server(conn);
JobCollection jobs = server.JobServer.Jobs;
var stepInformationsDetailsList = new List<StepInformationsDetails>();

foreach (Job job in jobs)
{
    foreach (JobStep jobstep in job.JobSteps)
    {
        stepInformationsDetailsList.Add(new StepInformationsDetails() {
           ServerName = job.Parent.MsxServerName,
           ReportName = job.Name,
           StepName = jobstep.Name,
           Command = jobstep.Command,
           Schedual = jobstep.DatabaseName,
           StepID = jobstep.ID
        });
    }
}
dataGridView1.DataSource = stepInformationsDetailsList;

Answer 1:

这些数据都将在您的命令变量。 当你重写/上作业步骤选项卡添加任何东西,最终的结果是,传递给DTEXEC在命令行中有这些值。 用户界面是简单地切出的参数在命令栏的msdb.dbo.sysjobsteps表将它们连接到不同的选项卡。

在本地主机,此查询应该返回回完整的命令行。

SELECT
    JS.command
FROM
    dbo.sysjobs AS SJ
    INNER JOIN dbo.sysjobsteps AS JS
    ON JS.job_id = SJ.job_id
WHERE
    sj.name = 'Concessions made by Simba Auto-Report';

既然你重写连接管理器“辛巴副本...”的价值,它不会在命令的输出显示。 如果是,你必须像一个字符串/SQL "\"\MyFolder\MyPackage\"" /SERVER "\"localhost\sql2008r2\"" /CONNECTION SYSDB;"\"Data Source=SQLDEV01\INT;Initial Catalog=SYSDB;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;\"" /CHECKPOINTING OFF /REPORTING E的/连接部分会关联到你的'辛巴副本......'值。

我怀疑,但不知道,该UI正在研究通过API SSIS包Microsoft.SqlServer.Dts.Runtime ,并确定所有的连接管理器,通过连接属性来打造出该对话框。



文章来源: How to get SQL JobStep connection strings