miércoles, 3 de diciembre de 2008

EXEC: "El comodín del Sr. Botines "

Después de una corta ausencia de inactividad del Sr. Botines (seguro que estaba incubando una camada de bugs), ha vuelto a aparecer en escena, con nuevas ideas y soluciones con las que deleitarnos.....pero no nos adelantemos a los hechos.

Estaba revisando una aplicación, cuando detecté un problema, que afectaba a todas las consultas, sp, funciones, etc. de dicha aplicación. Básicamente estabamos trabajando sobre dos BBDD ubicadas en dos servidores diferentes, e inicialmente se pensó para trabajar en el mismo servidor. Rápidamente se lo consulte al Sr. Botines, arriesgandome a interrumpir su habitual siesta, con los dedos índices clavados en las cuencas de los ojos (simulando que piensa):

W: Sr. Botines, tenemos un problema, puedes venir un momento?
B: Claaaro, claaaaro, xo puedo ir, aunque no creo que axude muxo.
W: ^^ No te preocupes, la intención es lo que cuenta. Tenemos que hacer algunos cambios en la base de datos.
B: Qué classse de cambios son, hasssme unos bosqueeeejos?
W: Tenemos que poner delante de los nombres de las BBDD el servidor al que pertenecen. Mas o menos así [Servidor].[BD].[dbo].[Tabla]...
B: Ahhhh xa veo, xa. Y essso que implica?
W: Pues un huevo de curro, porque hay sp hasta debajo de las piedras (el Sr. Botines utiliza sp hasta para escribir la lista de la compra)
B: Pero qué deciiiisss??, que me arranco los pesssones del disgusto!!!!. Bueno no te preocupes, xa tengo la solussssión!!!
W: ^^ (solución?....bueno vamos a escuchar y aprender del maestro)
B: Vamos a cambiar todos los sp y los crearemos con un ESSSEC, y que ejecute un cadena que contenga el sp original pero que incluya los nombres de los servidores.
W: ^^ (Respiro hondo)
W: Perdona Sr. Botines, pero no entiendo a que te refieres.
B: Xo te lo esplico, no padesssscas, mira esssste bosqueeeeejo

CREATE PROCEDURE [dbo].[MadeInBotines]
(
)
AS
DECLARE @cadena nvarchar(200)
// Esta consulta no devuelve ningún resultado
SET @cadena = "SELECT * FROM [Servidor].[BD].[dbo].[Tabla] WHERE Botines <> null)"
EXEC @cadena

B: Y asssí, para cada uno de los sp, consultas, funssssiones.
W: ^^

No hay comentarios:

Seguidores

Colaboradores