Tengo un procedimiento almacenado que se refiere a un servidor vinculado. En varios lugares a lo largo del procedimiento, tengo algo como lo siguiente:
INSERT INTO [TableName]
(...Columns...)
SELECT ...Columns...
FROM [ServerName\InstanceName].[Catalogue].[dbo].[TableName]
WHERE TableNameID = @TableNameID
Este procedimiento existe en mi entorno de desarrollo, entorno de prueba y entorno en vivo.
El problema es que cada copia del procedimiento es sutilmente diferente porque los nombres de los servidores son diferentes para cada entorno. Esto hace que la administración de la implementación de actualizaciones de script sea problemática.
¿Hay alguna manera de hacer que el procedimiento sea portátil para que cada entorno pueda ejecutar versiones idénticas?
Si no, ¿hay algo que pueda hacer para que la implementación del script sea menos propensa a errores?
sql-server
sql-server-2008
stored-procedures
linked-server
Doctor jones
fuente
fuente
SELECT <fields> FROM <linked server>
pero usar el mismo nombre de vista en todos los servidores para mantener el código mantenidoRespuestas:
El nombre de su servidor vinculado no tiene que ser el nombre del servidor. Puedes usar un nombre genérico.
Configure el servidor vinculado en cada entorno con el mismo nombre, pero en realidad apúntelos a servidores diferentes.
fuente
Me gusta la idea de usar un nombre genérico de servidor vinculado. Sin embargo, en muchos entornos esto puede no ser posible. En este caso, puede usar SQl dinámico en su sp.
fuente