22,209
社区成员
发帖
与我相关
我的任务
分享
/*******************************************************************
修改远程服务器的存储过程 DoAlterProc
使用方法:
1、本地有表 dbase 存放远程服务器的信息
-- 查看记录
select * from 数据库名.dbo.dbase
dbip dbname dbuser dbpwd lx bz
---------------------------- -------- ------ --------- ----------- ------------------------------
192.168.0.1\实例名 数据库名 SA 1 1 服务器
192.168.0.2 数据库名 SA 1 2 同事服务器
-- 插入记录
use 数据库名
insert dbase
select '192.168.0.2', -- 服务器+实例名
'数据库名', -- 数据库名
'sa', -- 用户名
'1', -- 用户密码
2, -- 类型(1:服务器,2:同事,可以进一步具体化)
'' -- 备注
-- 更新记录
2、D盘下有一个TXT 文档,存放最新的存储过程信息
测试用例:
EXEC DoAlterProc 1,'PSZY'
*******************************************************************/
CREATE PROC [dbo].[DoAlterProc]
@lx int -- 服务器类型
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
create proc abc
as
select xm as 姓名,xb from name
有何不可?