如何在一个go / one脚本中的多个实例中创建存储过程?

时间:2016-08-30 07:26:59

标签: sql-server

我有19个不同的实例,我想创建一个存储过程,它返回所有SQL作业详细信息。一个接一个的创造是一种创造的方式,这种方式很好但很耗时。

有没有其他方法可以通过一个go或一个脚本在所有19个不同的实例中创建存储过程?

我的脚本示例:

CREATE PROC Get_Jobs_Inventory_Detail
AS
    SELECT  
        j.name AS [Job Name],
        j.[description], 
        j.date_created, 
        j.date_modified,
        CASE j.[enabled] 
           WHEN 0 THEN 'Disabled' 
           WHEN 1 THEN 'Enabled' 
        END AS [Job Status]
    FROM 
        msdb.dbo.sysjobs j
    GROUP BY 
        j.name, j.[description], j.date_created, j.date_modified, j.[enabled] 
    ORDER BY 
        j.[enabled]

这是我在任何博客中的第一个问题。

3 个答案:

答案 0 :(得分:1)

您可以将PowerShell用于那个:

    public class MainActivity : XFormsApplicationDroid, IBeaconConsumer
        {
           public MainActivity()
            {

            }
            protected override void OnCreate(Bundle bundle)
            {

                BeaconManager beaconManager = BeaconManager.GetInstanceForApplication(this);
                var iBeaconParser = new BeaconParser();

                iBeaconParser.SetBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");
                var parser = new BeaconParser();
                parser.SetBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25");
                beaconManager.BeaconParsers.Add(parser);

                beaconManager.Bind(this);
    }

    public void OnBeaconServiceConnect()
            {
                //obtain the beaconservie object of android 
                var beaconService = Xamarin.Forms.DependencyService.Get<IbeaconService>();
                beaconService.InitializeService();
                //beaconService.StartTransmitting();
                beaconService.StartMonitoring();
                beaconService.StartRanging();
            }

     public void InitializeService()
            {
                m_beaconManager = InitializeBeaconManager();
            }

    private BeaconManager InitializeBeaconManager()
            {
        BeaconManager bm =      BeaconManager.GetInstanceForApplication(Xamarin.Forms.Forms.Context);

                //set the scan window
                bm.SetForegroundScanPeriod(1100L);

                //subscribe to the events;
                m_monitorNotifier.EnterRegionComplete += EnteredRegion;
                m_monitorNotifier.ExitRegionComplete += ExitedRegion;
                m_monitorNotifier.DetermineStateForRegionComplete += DeterminedStateForRegionComplete;
                m_rangeNotifier.DidRangeBeaconsInRegionComplete += RangingBeaconsInRegion;


                // constructs a new region object to be used for ranging or monitoring
                m_tagRegion = new Region("myUniqueBeaconId", Identifier.Parse("E4C8A4FC-F68B-470D-959F-29382AF72CE7"), null, null);
                m_tagRegion = new Region("myUniqueBeaconId", Identifier.Parse("B9407F30-F5F8-466E-AFF9-25556B57FE6D"), null, null);
                m_tagRegion = new Region("myUniqueBeaconId", Identifier.Parse("2F234454-CF6d-4A0F-ADF2-F4911BA9FFA6"), null, null);
                m_emptyRegion = new Region("myEmptyBeaconId", null, null, null);

                bm.SetBackgroundMode(false);
                // 
                //bm.Bind((IBeaconConsumer)Xamarin.Forms.Forms.Context);

                return bm;
            }

public void StartRanging()
          {
             BeaconManagerInstance.SetForegroundBetweenScanPeriod(0L); 
            m_beaconManager.AddRangeNotifier(m_rangeNotifier);
            m_beaconManager.StartRangingBeaconsInRegion(m_tagRegion);
            m_beaconManager.StartRangingBeaconsInRegion(m_emptyRegion);

          }

此脚本将获取本地计算机上的所有实例并在循环中运行您需要的命令。

我个人使用PS来做这类事情,但可以通过 sqlcmd BCP

来实现

答案 1 :(得分:0)

尝试这个

创建程序 &lt; @ param1,@ param2等。&gt; 作为开始

端 走 GRANT EXECUTE ON GO

答案 2 :(得分:0)

如果您在Management Studio中使用注册服务器,则可以右键单击服务器组并选择&#34;新查询。您运行的脚本将在所有服务器上运行。这将需要一些默认数据库的配置,每个服务器注册或创建使用&#34; USE&#34;在脚本中,但如果您的实例符合结构,或者您已经配置了已注册的服务器,这可能会非常有用。