Hola al grupo,
En la ayuda de SQL Server 2008 he leido que un campo calculado no puede ser
una subconsulta pero si puede ser una función escalar, entonces mi pregunta
es ¿puedo crear un campo calculado en una tabla "X" que obtiene, a través de
una función escalar creada previamente y que incluye una consulta, un valor
de otra tabla "Y"?
Es decir, me explico a través de un sencillo ejemplo; tengo una tabla X:
CREATE TABLE x
(
Codigo Int,
Fecha As Dbo.ObtieneFecha(Codigo)
)
Y tengo una función:
CREATE FUNCTION Dbo.ObtieneFecha ( @Codigo Int ) RETURNS Date
AS
BEGIN
DECLARE @Fecha Date
SELECT @Fecha=Fecha FROM Y WHERE Codigo=@Codigo
RETURN @Fecha
END
¿Hasta que punto se pueden incluir este tipo de campos calculados en una
tabla? ¿Qué inconvenientes tendría? ¿Donde está el límite si la consulta se
complica aún más con otras consultas? ¿Sería aconsejable hacerlo en vez de
tener un campo normal que a través de una aplicación voy calculando a partir
de esas consultas?
Gracias por vuestra atención y saludos,
José Antonio Muñoz.
Leer las respuestas