修改远程服务器的存储过程

/******************************************************************

              修改远程服务器的存储过程 DoAlterProc

              **********************************

Version: Sql 2005

Author : js_szy

Date :   2011.1.7

 

优点:可同时创建、修改多台服务器的存储过程(不用手动连接服务器)

      或其他对象,本例以proc 为例,其他各位自己发挥。比如,表,或者搜集多台服务器的数据信息

 

缺点:所有的要修改的服务器的对象名必须一致,且内容必须一致

*******************************************************************

 

本地对象:dBase 服务器列表表

       aa.txt 文本文档

       DoAlterProc 存储过程

使用方法:

1、本地有表dBase   存放远程服务器的信息

2aa.txt 存放服务器要修改的proc 的所有内容

3、执行本地DoAlterProc 存储过程

 

 

 

   -- 查看记录

   select * from szy.dbo.dBase  

 

   dbip                         dbname   dbuser dbpwd     lx          bz

   ---------------------------- -------- ------ --------- ----------- --------------------

   199.99.1.101                  SER     sa     sa009     1           A组服务器SQL2000

   199.99.1.101/server2005       SER2005 sa     sa        1           A组服务器SQL2005

   199.99.1.17                   zh      sa               1           A组服务器

 

   199.99.2.101/server2005       SER2005 sa     sa        2           B组服务器SQL2005

   199.99.2.17                   zh      sa               2           B组服务器

 

 

 

   -- 插入记录

 

   use  szy

   insert dBase

   select '199.99.1.27', -- 服务器+实例名

        'zh',      -- 数据库名

        'sa',      -- 用户名

        '',           -- 用户密码

         2,           -- 类型(:服务器,:同事,可以进一步具体化)

        ''         -- 备注

 

 

测试用例:

 

EXEC DoAlterProc 1

 

*******************************************************************/

 

CREATE PROC [dbo].[DoAlterProc]

   @lx int             -- 服务器类型 1 A组服务器

   ---@ProcName varchar(30) -- 存储过程名(备份时使用)

AS

 

   -- 修改

   DECLARE @cmd nvarchar(MAX);DECLARE @TEXT NVARCHAR;

   SET @cmd = '';

 

   SELECT

      @cmd = @cmd + 'EXEC xp_cmdshell N''sqlcmd -S '+dbip+' -i"D:/aa.txt"  -d '+dbname+' -U '+dbuser+

           case when isnull(dbpwd,'')=''  then '' else ' -P ' end +dbpwd+''';'+CHAR(13)+CHAR(10)

   FROM dbase

   where lx=@lx;

 

   print @cmd

   EXEC(@cmd)

GO

-- EXEC xp_cmdshell N'sqlcmd -S 99.99.1.27 -i"D:/aa.txt"  -d zh -U sa';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值