修正SQLSERVER package连接

本文详细介绍了如何使用T-SQL脚本批量修改SQL Server中DTS包的连接管理器属性,通过XML命名空间和XQuery进行精确的节点定位与属性替换,实现对多个DTS包的自动化更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

drop table #temp_mt;
 --WITH XMLNAMESPACES ('www.microsoft.com/SqlServer/Dts' AS DTS)
 SELECT ROW_NUMBER() OVER ( ORDER BY id ) AS idx ,
        id ,
        name ,
        packageXML = CAST(CAST(packagedata AS VARBINARY(MAX)) AS XML)
 INTO   #temp_mt
 FROM   dbo.sysdtspackages90


DECLARE @idx INT,@id UNIQUEIDENTIFIER,@xml XML,@maxIdx INT;
SELECT @maxIdx = MAX(idx) FROM #temp_mt;
SELECT @idx = 1;
WHILE @idx <= @maxIdx
BEGIN    
    SELECT @xml = packageXML,@id = id FROM #temp_mt WHERE idx = @idx;            
    --SELECT @xml,@id;
    
    SET @xml.modify('declare namespace DTS="www.microsoft.com/SqlServer/Dts"; 
                        replace value of (/DTS:Executable/DTS:ConnectionManager/DTS:ObjectData/DTS:ConnectionManager/DTS:Property/text())[2]
                        with 
                        "server=''.'';Trusted_Connection=true;Application Name=''Microsoft SQL Server Management Studio'';Pooling=false;Packet Size=4096;multipleactiveresultsets=false;"');    
--    SELECT @xml,@id;
    update dbo.sysdtspackages90 
    set packagedata = CAST(@xml as VARBINARY(MAX))
    WHERE id = @id;
    SET @idx = @idx+1;
END

 

转载于:https://www.cnblogs.com/CoreXin/p/8308444.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值