El nombre del objeto no es válido (UDF)

18/11/2008 - 10:58 por JuanD | Informe spam
Hola,

He creado la siguiente función que en teoría debería devolver la fecha de
los días con sábados que hay desde una fecha hasta hoy (desde el QA
funciona);

CREATE FUNCTION dbo.Sabados (@FechaI smalldatetime)
RETURNS @Tabla TABLE (Fecha smalldatetime)
BEGIN
declare @i int
declare @dia varchar(20)
declare @fecha datetime
select @i = 0
while @i > - DateDiff(Day, '01/10/2008', @FechaI)
begin
select @dia = DateName(dw, dateadd(d, @i, @FechaI))
select @fecha = DateAdd(d, @i, @FechaI)
if @dia in ('Sábado')
begin
INSERT INTO @Tabla Select convert(nvarchar, @fecha, 103)
end
select @i = @i - 1
end
RETURN
END

A la hora de llamarla así; Select dbo.Sabados(getdate()), me lanza el
siguiente error;

Servidor: mensaje 208, nivel 16, estado 1, línea 1
El nombre de objeto 'dbo.Sabados' no es válido.

Cuando se que el nombre de la función existe y que funciona si ejecuto el
código desde el QA, ¿qué estoy haciendo mal?.
Utilizo SQL Server 2000 SP4.
Gracias.

Preguntas similare

Leer las respuestas

#41 Jose TH
19/11/2008 - 01:11 | Informe spam
Pues "hombre del CREATE VIEW" :)... mira tu otro mensaje donde confirmas tu
brillante recomendación de la vista:

"Tanto a la consulta como a la definición de la vista <==VES?
le puedes añadir condiciones con el where, naturalmente.
Como solo quieres los sábados hasta hoy:
...
WHERE diasemana=0 AND fecha <= getdate()

Saludos,
Carlos"

Pues otra brillante idea de "nivel lógico" le sugeriste ahí al OP.
Asumamos que tu función de parámetros fechas fijos no fuera lo que es...
jejej (perdona pero es que me sigue siendo risible) sino que realmente fuera
lo que tu supones en tu mal intento, crees que es una buena idea añadirle
esas condiciones EN EL WHERE a la definición de una vista ????????????? y
no a esa? a cualquier vista ?????

No piensas que fuera mejor que esa condición se indicase el el Query que
consulte la vista y no en la definición de ésta?
Qué pasaría si mañana fuesen los domingos y no los sábados ? o si mañana no
fuese a GetDate() sino a una fecha arbitraria? o que no fuese "A" una
fecha sino para un rango de fechas arbitrario ?

Te has fijado lo que has escrito ?
Eso también se aprende leyendo a CJ Date ? o es a la Wiki ?

Vuelve a leerte. Por eso es que te reitero que redactes con más cuidado
para que no confundas a la "foro-audiencia" ya que se supone que respondes
mensajes para ayudar no para desayudar.

Mostrar la cita
No, si yo no me ofendo porque me llames imbécil ya que estoy muy seguro de
que no lo soy.
También entiendo y te he dicho las razones por las que insultas, hasta te
comprendo y hasta me estás cayendo simpático :)
Pero no olvides la recomendación sobre el mal carácter que me lo agradecerás
de por vida. Es en serio.

Saludos
#42 Carlos M. Calvelo
19/11/2008 - 01:24 | Informe spam
Jose:
<contigo he terminado>

A todos los demás:
Mañana espero una visita de la brigada de 'ética y moral'.
Seguro que tendré que aguantar un par de lecciones.

Saludos,
Carlos
#43 Jose TH
19/11/2008 - 01:37 | Informe spam
Mostrar la cita
Estamos de acuerdo. No te caería nada mal. :)

Saludos
#44 Pedro
19/11/2008 - 01:52 | Informe spam
José, creo que has hecho un buen aporte.

Saludos
Pedro

<Jose TH >>> escribió en el mensaje
news:
Mostrar la cita
#45 Carlos M. Calvelo
19/11/2008 - 11:27 | Informe spam
Pues tendré que reaccionar otra vez. Y repetir, repetir y volver a
repetir lo ya dicho y que no haces más que distorsionar.


On 19 nov, 00:58, "Jose TH" <>>> wrote:
Mostrar la cita
Qué es lo que he negado? Tienes que aprender a leer.
Si una vista existe tendrá que tener una definición; una expresión
que la defina. Qué he negado?


Mostrar la cita
Y ya desde mi primer reacción he dejado claro que lo del 2010 es
solo un ejemplo de como utilizar la función (sea la que puse yo o
la original que ya tenía el OP, con los cambios necesarios para
hacer posible ese uso). Pero quieres machacar y machacar ahí...
pues machaca.


Mostrar la cita
Y he dejardo muy claro en mi primer reacción que era una función
genérica. Eso significa que no es específica para este caso
(explicación especial para ti).

Además la implementación de la vista se puede cambiar, y lo que hoy
es una vista mañana es una tabla y pasado mañana una vista otra vez.
Y la función que se usa en una vista hoy es una función y mañana es
una tabla normal. Todo eso sin romper el diseño lógico.
Esas posibilidades están todas en mi primer reacción.

Eso no se puede decir de SP's. El OP ya tenía una vista, sabes?



Mostrar la cita
De refilón? (Repito) He propuesto también la posibilidad de utilizar
esa misma función para popular una tabla base 'Calendario'. Por eso
es una función genérica, y no solo para sábados.
Con la misma función se puede hacer eso, o meterla en la vista
original del OP, como este ya estaba tratando de hacer. Por eso
es genérica. A ver si repitiendo y repitiendo te enteras.

Mas tarde dices que te gusta más la idea de Alejandro de crear
un calendario. Hago referencia a que yo ya había dado esa opción
y que la función se puede usar para generar los datos en dicho
calendario. Pero muy convenientemente eso se ignora. O ahora al
no poder seguir ignorandolo es 'de refilón'.

Eso cuando tu estabas intentando solo decirle al OP como usar
la función que ya tenía y ni de eso fuistes capaz, para luego
proponer un SP. Solo Alejandro y yo hemos propuesto una
función (como deseaba el OP) y una tabla 'Calendario'.

Alejandro puso como opción una función sobre una tabla Calendario,
para utilizar en una vista. Por qué? Pues porque eso precisamente
era lo que quería el OP. Teniendo la tabla ya no tiene sentido la
función pero, como Alejandro aclaró, le deja la opción al OP.
Por qué digo esto? Son también opciones. Pero tu sin aportar nada
lo único que te interesa es criticar opciones según quien sea el
que las dá.

Qué agenda tienes tu entonces?



Mostrar la cita
Usar un SP es la peor de todas las opciones dadas. Y es precisamente
lo que has propuesto tu, desesperado por no encontrar una solución
directa al problema te tenía el OP con la función.
Por que es la peor? Te remito a los conceptos que te he dejado en
otra reacción; pero que ya has demostrado ampliamente en tus últimas
reacciones sobre lo de diseño lógico e implementación que no lo
entiendes. Ni eres digno de más explicaciones.

Malas decisiones a nivel lógico tienen consecuencias muchos mas
graves que los fallos que uno pueda cometer con la implementación.


Mostrar la cita
Vaya opción! Migrar solo porque se necesita una lista de sábados!
Tus opciones han sido un SP y cambiarase de versión.
Y yo que creía que la del SP era la peor. Brillante!

Yo también tengo una conclusión, que repetiré otra vez para que
los leen este foro y tengan alguna duda (como dices tu) sobre qué
tipo de juego haces tu:

1)
En mi primer reacción he dejado ver al OP como podía conseguir
hacer uso de la función en la vista, como él quería. Y he
propuesto además que podía utilizarla para popular una tabla
'Calendario' para usarla en vez de la función. Por eso es genérica.

En cambio tu has hecho varios intentos de dejarle ver al OP como
tenía que hacer uso de la función que este ya tenía y nada mas.
Repito... sin resultado. Y por eso te cambias a lo del SP.
Entretando el OP parece estar satisfecho con el uso de la
función como él mismo quería.

2)
Entonces Alejandro proponer crear una tabla 'Calendario' y
(repito) por si el OP insiste en una función (que ya no sería
necesaria), pues también se la dá.

3)
Es ahora cuando para ti la opción de una tabla base 'Calendario'
parece ser mejor que todo lo que tu has propuesto. Opción que ya
estaba en mi primer reacción.

4)
Analizando ahora nos vienes a decir que las opciones (otras que
la creación de una tabla base como propone Alejandro) son todas
ridículas, y eso basandose en meros ejemplos que se han puesto
y tratando de ignorar que esa misma opción está también en mi
primer reacción en en este hilo.

Esa es mi conclusión.
Mi primera reacción en el hilo está ahí para quien la quiera leer
detenidamente, que tampoco es tan larga.


Otras conclusiones:

"Sr. Carlos Calvelo ..."
"Sr. Alejandro Mesa ..."

Ufff!
Que se vean otros hilos tuyos donde tratas a los demás como se te
ha tratado ahora a tí. Y tu respuesta es entonces tratar a los demás
de 'Señor' y criticar las propuestas iniciales que alguien ha
hecho para después acabar concluyendo que porque lo dice también
el 'Sr.' Alejandro Mesa entonces sí es lo que hay que hacer.

Ni has podido dar respuesta a la pregunta original del OP (como hago
para poder utilizar la función desde la vista?), ni has propuesto
ninguna alternativa de más valor. Solo se te ha ocurrido proponer
una ruptura de la interfaz con las aplicaciones y usuarios sobre la
que el OP, parece ser, ya había tomado una sabia decisión. Pero
estoy hablando otra vez del modelo lógico y de su implementación
y no espero que lo vayas a entender ahora la diferencia, visto ya
lo visto.

Estás jugando un juego sucio y tu agenda en esto debe de oler
bastante mal. Ya aparte de insultos, realmente das asco.
No es por nada que Alfredo ya te ha metido en (como él dice)
en el filtro de *idiotas*.
Puede seguir distorsionando y distorsionando, pero eso no
cambiará para nada aquello que tratas de distorsionar.
Ads by Google
Search Busqueda sugerida