【散粉2】【修改远程服务器的存储过程】

华夏小卒 2011-01-13 08:45:10
详情请见

http://blog.csdn.net/js_szy/archive/2011/01/07/6122169.aspx

感谢 小梁(之前是小梁指导的)

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

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

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

Version: Sql 2005

Author : js_szy

Date : 2011.1.7



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

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



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

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



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

aa.txt 文本文档

DoAlterProc 存储过程

使用方法:

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

2、aa.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



...全文
87 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ws_hgo 2011-01-14
  • 打赏
  • 举报
回复
收藏啦!
恭喜小卒生星
fengxiaohan211 2011-01-14
  • 打赏
  • 举报
回复
投入与产出
叶子 2011-01-14
  • 打赏
  • 举报
回复
可用分不可以为负数的。
AcHerat 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 qianjin036a 的回复:]
引用 12 楼 js_szy 的回复:
引用 11 楼 josy 的回复:
引用 10 楼 js_szy 的回复:
引用 8 楼 josy 的回复:
引用 4 楼 js_szy 的回复:
不能编辑。 行间距太大,看着真累


给1w分,转到基础类我帮你编辑
今天一天就输了近1W。还剩不到7K了


是吧,不如打个7折,你把7K转给我算了,免得明天输完了。


还想翻盘……
[/Quote]

没事,继续去翻盘吧!会成负1W的,呵呵!
-晴天 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 js_szy 的回复:]
引用 11 楼 josy 的回复:
引用 10 楼 js_szy 的回复:
引用 8 楼 josy 的回复:
引用 4 楼 js_szy 的回复:
不能编辑。 行间距太大,看着真累


给1w分,转到基础类我帮你编辑
今天一天就输了近1W。还剩不到7K了


是吧,不如打个7折,你把7K转给我算了,免得明天输完了。


还想翻盘呢,树哥哥
[/Quote]

典型的梭哈玩多了的症状.
华夏小卒 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 josy 的回复:]
引用 10 楼 js_szy 的回复:
引用 8 楼 josy 的回复:
引用 4 楼 js_szy 的回复:
不能编辑。 行间距太大,看着真累


给1w分,转到基础类我帮你编辑
今天一天就输了近1W。还剩不到7K了


是吧,不如打个7折,你把7K转给我算了,免得明天输完了。
[/Quote]

还想翻盘呢,树哥哥
百年树人 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 js_szy 的回复:]
引用 8 楼 josy 的回复:
引用 4 楼 js_szy 的回复:
不能编辑。 行间距太大,看着真累


给1w分,转到基础类我帮你编辑
今天一天就输了近1W。还剩不到7K了
[/Quote]

是吧,不如打个7折,你把7K转给我算了,免得明天输完了。
华夏小卒 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 josy 的回复:]
引用 4 楼 js_szy 的回复:
不能编辑。 行间距太大,看着真累


给1w分,转到基础类我帮你编辑
[/Quote]今天一天就输了近1W。还剩不到7K了
华夏小卒 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wxf163 的回复:]
我有一个好办法,注册服务器组,组更新就都可以了。
[/Quote]可以公布下,学习
百年树人 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 js_szy 的回复:]
不能编辑。 行间距太大,看着真累
[/Quote]

给1w分,转到基础类我帮你编辑
gw6328 2011-01-13
  • 打赏
  • 举报
回复
王向飞 2011-01-13
  • 打赏
  • 举报
回复
我有一个好办法,注册服务器组,组更新就都可以了。
叶子 2011-01-13
  • 打赏
  • 举报
回复
这个厉害,学习
华夏小卒 2011-01-13
  • 打赏
  • 举报
回复
不能编辑。 行间距太大,看着真累

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧