Como o colega renomeou o servidor? Eles seguiram esse procedimento:
Se não, eles precisam, O procedimento deve ser o mesmo, independentemente da versão do SQL.
Um colega renomeou um servidor SQL, no entanto, todos os planos de manutenção ainda têm referências a 'OLD_NAME' como 'Conexão de servidor local'.
As caixas de texto que contêm os nomes dos servidores para Conexões do Servidor Local estão em cinza e não podem ser alteradas
Existe uma maneira de alterar esses valores, exceto exportar todos os pacotes do SSIS, alterar no Visual Studio e adicioná-los novamente?
Como o colega renomeou o servidor? Eles seguiram esse procedimento:
Se não, eles precisam, O procedimento deve ser o mesmo, independentemente da versão do SQL.
O link da Microsoft fornecido acima não aborda os nomes de servidor "Conexão do servidor local" nos planos de manutenção. Essas consultas permitem verificar as seqüências de conexão do plano de manutenção. Todos usam o banco de dados msdb.
(SQL 2008, também SQL 2005 se sysssispackages for alterado para sysdtspackages90)
SELECT x.*,
LocalServerConnectionString = cm.n.value('declare namespace DTS="www.microsoft.com/SqlServer/Dts";(DTS:ObjectData/DTS:ConnectionManager/DTS:Property[@DTS:Name="ConnectionString"])[1]', 'varchar(1000)')
FROM (
SELECT id, name, packageXML = CAST(CAST(packagedata AS VARBINARY(MAX)) AS XML)
FROM dbo.sysssispackages
WHERE id IN (SELECT id FROM dbo.sysmaintplan_plans)
) x
CROSS APPLY packageXML.nodes('declare namespace DTS="www.microsoft.com/SqlServer/Dts";/DTS:Executable/DTS:ConnectionManager[DTS:Property[@DTS:Name="ObjectName"]="Local server connection"]') cm(n)
(SQL 2012)
SELECT x.*,
LocalServerConnectionString = cm.value('declare namespace DTS="www.microsoft.com/SqlServer/Dts";DTS:ObjectData[1]/DTS:ConnectionManager[1]/@DTS:ConnectionString', 'varchar(1000)')
FROM (
SELECT id, name, packageXML = CAST(CAST(packagedata AS VARBINARY(MAX)) AS XML)
FROM dbo.sysssispackages
WHERE id IN (SELECT id FROM dbo.sysmaintplan_plans)
) x
CROSS APPLY packageXML.nodes('declare namespace DTS="www.microsoft.com/SqlServer/Dts";/DTS:Executable/DTS:ConnectionManagers/DTS:ConnectionManager[@DTS:ObjectName="Local server connection"]') p(cm)
Se você examinar o packageXML e determinar que é seguro substituir todas as instâncias de OldServerName por NewServerName, isso será feito:
UPDATE dbo.sysssispackages SET packagedata = CAST(CAST(REPLACE(CAST(CAST(packagedata AS VARBINARY(MAX)) AS VARCHAR(MAX)), 'OldServerName', 'NewServerName') AS XML) AS VARBINARY(MAX))
WHERE id = 'package GUID'
Se necessário, você pode fazer as alterações manualmente. Você também pode destruir o pacote se não tiver cuidado.
DECLARE @packageXML XML;
SET @packageXML = 'Copy and paste the packageXML data, then edit it manually';
UPDATE dbo.sysssispackages SET packagedata = CAST(@packageXML AS VARBINARY(MAX))
WHERE id = 'package GUID'
Outra opção é:
Tags sql sql-server