procedimiento almacenado

03/03/2004 - 11:57 por Manuel | Informe spam
Hola gente!

tengo el siguiente problema y no tengo ni idea de como solucionarlo, haber
si me explico:

Cuando estoy haciendo un procedimiento almacenado y pulso "Comprobar la
sintaxis" me responde: "comprobacion de sintacxis correcta" pero... cuando a
continuacion pulso el boton de Aceptar, me dice: Error 207. El nombre de
colmna 'T.Fecha BETWEEN" no es valido.

Alguna idea????

Mil gracias por su atención
Saludos

Preguntas similare

Leer las respuestas

#1 Javier Loria
03/03/2004 - 13:11 | Informe spam
Hola:
Cuando escoges la opcion de "comprobacion de sintaxis" solo se hace
esto, comprueba que no cometes algun error de SINTAXIS, y no revisa los
nombres de los objetos (Tablas, Columnas, etc). Prueba hacer esto:
=SELECT *
FROM TablaNoExiste
= Y si haces un Parse veras que efectivamente da que la Sintaxis es
correcta pero si lo ejecutas como la tabla no existe dara error.
Este es el comportamiento deseado. Debes revisas los nombres de las
columnas y de las tablas en tu consulta.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


Manuel escribio:
Hola gente!

tengo el siguiente problema y no tengo ni idea de como solucionarlo,
haber si me explico:

Cuando estoy haciendo un procedimiento almacenado y pulso "Comprobar
la sintaxis" me responde: "comprobacion de sintacxis correcta"
pero... cuando a continuacion pulso el boton de Aceptar, me dice:
Error 207. El nombre de colmna 'T.Fecha BETWEEN" no es valido.

Alguna idea????

Mil gracias por su atención
Saludos
Respuesta Responder a este mensaje
#2 Manuel
03/03/2004 - 13:32 | Informe spam
Hola y gracias por responder...

la cuestion es q está igual que otros procedimientos y funciona
correctamente...
el problema que yo veo es q no entiende bien el tema de las comillas simples
y comillas dobles. Yo quiero concatenar la fecha que me pasan como
paramentro de entrada (y q es opcional ademas de otros muchos parametros) a
una select, la fecha debe ir entre comillas simples para poderla ejecutar la
sentencia, entonces:

@sql = @sql + " Fecha >= '" + cast(@FechaInicio as varchar(20)) + "'"
(@sql es la variable q contien la sentencia select a ejecutar)

con esta sintaxis me dice que no encuentra el campo "Fecha >= ' , sobra
decir q el campo fecha existe en la tabla en cuestion.

Lo bueno de todo esto, es q en otros procedimientos funciona
correctamente...

otra solucion es hacerlo todo con comillas simples:

@sql = @sql + ' Fecha >= ''' + cast(@fechainicio as varchar(20)) + '''

asi funciona correctamente, pero no entiendo como de la otra forma no me
deja...

Otra solucion muy curiosa, es q reiniciando mi ordenador, vuelvo a acceder
al procedimiento compruebo sintaxis y luego aplico y está todo perfecto

alguien lo entiende, pq yo no!


"Javier Loria" escribió en el mensaje
news:%
Hola:
Cuando escoges la opcion de "comprobacion de sintaxis" solo se hace
esto, comprueba que no cometes algun error de SINTAXIS, y no revisa los
nombres de los objetos (Tablas, Columnas, etc). Prueba hacer esto:
=> SELECT *
FROM TablaNoExiste
=> Y si haces un Parse veras que efectivamente da que la Sintaxis es
correcta pero si lo ejecutas como la tabla no existe dara error.
Este es el comportamiento deseado. Debes revisas los nombres de las
columnas y de las tablas en tu consulta.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


Manuel escribio:
> Hola gente!
>
> tengo el siguiente problema y no tengo ni idea de como solucionarlo,
> haber si me explico:
>
> Cuando estoy haciendo un procedimiento almacenado y pulso "Comprobar
> la sintaxis" me responde: "comprobacion de sintacxis correcta"
> pero... cuando a continuacion pulso el boton de Aceptar, me dice:
> Error 207. El nombre de colmna 'T.Fecha BETWEEN" no es valido.
>
> Alguna idea????
>
> Mil gracias por su atención
> Saludos


Respuesta Responder a este mensaje
#3 ulises
03/03/2004 - 14:19 | Informe spam
En el BOL revisa el tema de SET QUOTED_IDENTIFIER, cuando
este parametro se encuentra en ON te permitirá lo que
pides.

Saludos,
Ulises

Hola y gracias por responder...

la cuestion es q está igual que otros procedimientos y


funciona
correctamente...
el problema que yo veo es q no entiende bien el tema de


las comillas simples
y comillas dobles. Yo quiero concatenar la fecha que me


pasan como
paramentro de entrada (y q es opcional ademas de otros


muchos parametros) a
una select, la fecha debe ir entre comillas simples para


poderla ejecutar la
sentencia, entonces:

@sql = @sql + " Fecha >= '" + cast(@FechaInicio as varchar


(20)) + "'"
(@sql es la variable q contien la sentencia select a


ejecutar)

con esta sintaxis me dice que no encuentra el


campo "Fecha >= ' , sobra
decir q el campo fecha existe en la tabla en cuestion.

Lo bueno de todo esto, es q en otros procedimientos


funciona
correctamente...

otra solucion es hacerlo todo con comillas simples:

@sql = @sql + ' Fecha >= ''' + cast(@fechainicio as


varchar(20)) + '''

asi funciona correctamente, pero no entiendo como de la


otra forma no me
deja...

Otra solucion muy curiosa, es q reiniciando mi ordenador,


vuelvo a acceder
al procedimiento compruebo sintaxis y luego aplico y está


todo perfecto

alguien lo entiende, pq yo no!


"Javier Loria" escribió en el mensaje
news:%
Hola:
Cuando escoges la opcion de "comprobacion de




sintaxis" solo se hace
esto, comprueba que no cometes algun error de SINTAXIS,




y no revisa los
nombres de los objetos (Tablas, Columnas, etc). Prueba




hacer esto:
=>> SELECT *
FROM TablaNoExiste
=>> Y si haces un Parse veras que efectivamente da que




la Sintaxis es
correcta pero si lo ejecutas como la tabla no existe




dara error.
Este es el comportamiento deseado. Debes revisas




los nombres de las
columnas y de las tablas en tu consulta.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


Manuel escribio:
> Hola gente!
>
> tengo el siguiente problema y no tengo ni idea de




como solucionarlo,
> haber si me explico:
>
> Cuando estoy haciendo un procedimiento almacenado y




pulso "Comprobar
> la sintaxis" me responde: "comprobacion de sintacxis




correcta"
> pero... cuando a continuacion pulso el boton de




Aceptar, me dice:
> Error 207. El nombre de colmna 'T.Fecha BETWEEN" no




es valido.
>
> Alguna idea????
>
> Mil gracias por su atención
> Saludos






.

Respuesta Responder a este mensaje
#4 Manuel
03/03/2004 - 14:42 | Informe spam
esa solucion no ve vale... si entro dentro de mi procedimiento almacenado y
pongo lo que me dices me sigue saliendo el mismo error cuando doy al boton
de aplicar... tambien lo he ejectuado en el analizador de consultas y luego
he intentado cambiar el procedimiento y sigue dando error...

Mil gracias Ulises



"ulises" escribió en el mensaje
news:61e101c40122$3514d4d0$
En el BOL revisa el tema de SET QUOTED_IDENTIFIER, cuando
este parametro se encuentra en ON te permitirá lo que
pides.

Saludos,
Ulises

Hola y gracias por responder...

la cuestion es q está igual que otros procedimientos y


funciona
correctamente...
el problema que yo veo es q no entiende bien el tema de


las comillas simples
y comillas dobles. Yo quiero concatenar la fecha que me


pasan como
paramentro de entrada (y q es opcional ademas de otros


muchos parametros) a
una select, la fecha debe ir entre comillas simples para


poderla ejecutar la
sentencia, entonces:

@sql = @sql + " Fecha >= '" + cast(@FechaInicio as varchar


(20)) + "'"
(@sql es la variable q contien la sentencia select a


ejecutar)

con esta sintaxis me dice que no encuentra el


campo "Fecha >= ' , sobra
decir q el campo fecha existe en la tabla en cuestion.

Lo bueno de todo esto, es q en otros procedimientos


funciona
correctamente...

otra solucion es hacerlo todo con comillas simples:

@sql = @sql + ' Fecha >= ''' + cast(@fechainicio as


varchar(20)) + '''

asi funciona correctamente, pero no entiendo como de la


otra forma no me
deja...

Otra solucion muy curiosa, es q reiniciando mi ordenador,


vuelvo a acceder
al procedimiento compruebo sintaxis y luego aplico y está


todo perfecto

alguien lo entiende, pq yo no!


"Javier Loria" escribió en el mensaje
news:%
Hola:
Cuando escoges la opcion de "comprobacion de




sintaxis" solo se hace
esto, comprueba que no cometes algun error de SINTAXIS,




y no revisa los
nombres de los objetos (Tablas, Columnas, etc). Prueba




hacer esto:
=>> SELECT *
FROM TablaNoExiste
=>> Y si haces un Parse veras que efectivamente da que




la Sintaxis es
correcta pero si lo ejecutas como la tabla no existe




dara error.
Este es el comportamiento deseado. Debes revisas




los nombres de las
columnas y de las tablas en tu consulta.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


Manuel escribio:
> Hola gente!
>
> tengo el siguiente problema y no tengo ni idea de




como solucionarlo,
> haber si me explico:
>
> Cuando estoy haciendo un procedimiento almacenado y




pulso "Comprobar
> la sintaxis" me responde: "comprobacion de sintacxis




correcta"
> pero... cuando a continuacion pulso el boton de




Aceptar, me dice:
> Error 207. El nombre de colmna 'T.Fecha BETWEEN" no




es valido.
>
> Alguna idea????
>
> Mil gracias por su atención
> Saludos






.

Respuesta Responder a este mensaje
#5 ulises
03/03/2004 - 15:02 | Informe spam
Hum, creo que coloque ON cuando debería decir OFF, crea
una tabla :

CREATE table tempo ( fecha datetime )

y luego prueba lo siguiente :

SET QUOTED_IDENTIFIER ON
declare @sql varchar(70)
SET @sql = "SELECT * FROM tempo WHERE "
SET @sql = @sql + " fecha >= '20030401'"
EXEC(@sql)

te debería dar el siguiente error :

Server: Msg 207, Level 16, State 3, Line 3
Invalid column name 'SELECT * FROM tempo WHERE '.
Server: Msg 207, Level 16, State 1, Line 4
Invalid column name ' fecha >= '20030401''.

en cambio si lo colocas en OFF

SET QUOTED_IDENTIFIER OFF
declare @sql varchar(70)
SET @sql = "SELECT * FROM tempo WHERE "
SET @sql = @sql + " fecha >= '20030401'"
EXEC(@sql)


te debe retornar :

fecha

Saludos,
Ulises


esa solucion no ve vale... si entro dentro de mi


procedimiento almacenado y
pongo lo que me dices me sigue saliendo el mismo error


cuando doy al boton
de aplicar... tambien lo he ejectuado en el analizador de


consultas y luego
he intentado cambiar el procedimiento y sigue dando


error...

Mil gracias Ulises



"ulises" escribió en el


mensaje
news:61e101c40122$3514d4d0$
En el BOL revisa el tema de SET QUOTED_IDENTIFIER, cuando
este parametro se encuentra en ON te permitirá lo que
pides.

Saludos,
Ulises

Hola y gracias por responder...

la cuestion es q está igual que otros procedimientos y


funciona
correctamente...
el problema que yo veo es q no entiende bien el tema de


las comillas simples
y comillas dobles. Yo quiero concatenar la fecha que me


pasan como
paramentro de entrada (y q es opcional ademas de otros


muchos parametros) a
una select, la fecha debe ir entre comillas simples para


poderla ejecutar la
sentencia, entonces:

@sql = @sql + " Fecha >= '" + cast(@FechaInicio as




varchar
(20)) + "'"
(@sql es la variable q contien la sentencia select a


ejecutar)

con esta sintaxis me dice que no encuentra el


campo "Fecha >= ' , sobra
decir q el campo fecha existe en la tabla en cuestion.

Lo bueno de todo esto, es q en otros procedimientos


funciona
correctamente...

otra solucion es hacerlo todo con comillas simples:

@sql = @sql + ' Fecha >= ''' + cast(@fechainicio as


varchar(20)) + '''

asi funciona correctamente, pero no entiendo como de la


otra forma no me
deja...

Otra solucion muy curiosa, es q reiniciando mi ordenador,


vuelvo a acceder
al procedimiento compruebo sintaxis y luego aplico y está


todo perfecto

alguien lo entiende, pq yo no!


"Javier Loria" escribió en el mensaje
news:%
Hola:
Cuando escoges la opcion de "comprobacion de




sintaxis" solo se hace
esto, comprueba que no cometes algun error de SINTAXIS,




y no revisa los
nombres de los objetos (Tablas, Columnas, etc). Prueba




hacer esto:
=>>> SELECT *
FROM TablaNoExiste
=>>> Y si haces un Parse veras que efectivamente da que




la Sintaxis es
correcta pero si lo ejecutas como la tabla no existe




dara error.
Este es el comportamiento deseado. Debes revisas




los nombres de las
columnas y de las tablas en tu consulta.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


Manuel escribio:
> Hola gente!
>
> tengo el siguiente problema y no tengo ni idea de




como solucionarlo,
> haber si me explico:
>
> Cuando estoy haciendo un procedimiento almacenado y




pulso "Comprobar
> la sintaxis" me responde: "comprobacion de sintacxis




correcta"
> pero... cuando a continuacion pulso el boton de




Aceptar, me dice:
> Error 207. El nombre de colmna 'T.Fecha BETWEEN" no




es valido.
>
> Alguna idea????
>
> Mil gracias por su atención
> Saludos






.





.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida