我有一个存储在数据库上的作业,计划每天运行。但有时需要在任何给定时间执行此作业以查看最新数据(我使用的是SQL Server Management Studio 2008)。
作业本身只是从包含实时数据的视图中获取数据,然后将其放入一个表中,然后将其用作excel文件的数据源。执行作业将丢弃并使用新数据重新创建表。
在excel(2010)中,我希望有一个“按钮”,按下该按钮将执行作业,然后在Excel中的数据选项卡上点击刷新,然后将使用新数据更新工作表上的数据。
我的问题是:如何从excel宏执行此作业?
答案 0 :(得分:4)
Private Sub CmdRunJob_Click()
Dim con As Object
Set con = CreateObject("ADODB.Connection")
con.Open = "DRIVER={SQL Server};SERVER=YourServer;" & _
"USER=YourUser;PASSWORD=YourPassword;"
con.Execute "exec msdb.dbo.sp_start_job 'YourJob'"
End Sub
答案 1 :(得分:0)
您创建一个将数据从视图移动到表的SP。 然后按计划修改它执行该SP的作业。 然后在Excel宏中,您可以使用该SP来更新数据。
或者参见example如何从VBScript运行作业
答案 2 :(得分:0)
您可以使用SQLDMO.SQLServer来执行您的工作。