CONSULTA SQL

17/04/2006 - 23:26 por CCALLOQUISPE PALOMINO | Informe spam
Hola:
tengo el siguiente problema en las tablas de mi base de datos, una tabla
cambia su nombre en razon del año, por ejemplo XXX_04,XXX_03. ahora el
problema es como hacer referencia en el sql pasando como parametro el año.
he intentado crear una funcion que devuelva una tabla con sql dinamico pero
me sale un error:

Msg 156, Level 15, State 1, Procedure TAB_ALU, Line 11
Sintaxis incorrecta cerca de la palabra clave 'exec'.
Msg 170, Level 15, State 1, Procedure TAB_ALU, Line 11
Línea 11: sintaxis incorrecta cerca de 'substring'.

la consulta sql es la siguiente:


CREATE FUNCTION TAB_ALU
(

@v_fac AS VARCHAR(2),
@v_anual AS VARCHAR(4)

)
RETURNS TABLE
AS

RETURN (exec('select * from ' + @v_fac + substring(@v_anual,3,2) + '_ALU'))


so por favor me pudieran ayudar a resolver este problema.

chau y muchas gracias
CCALLOQUISPE

Preguntas similare

Leer las respuestas

#1 Isaias
18/04/2006 - 00:04 | Informe spam
No requieres de una funcion, si ejecutas esto en tu query analyzer, ¿que te
da?

DECLARE @SQLString NVARCHAR(1000), @v_fac char(2), @v_anual char(4)
SET @v_fac = '04'
SET @v_anual = '2006'
SET @SQLString = N'select * from ' + @v_fac + substring(@v_anual,3,2) +
'_ALU'
EXECUTE sp_executesql @SQLString

Saludos
IIslas


"CCALLOQUISPE PALOMINO" escribió:

Hola:
tengo el siguiente problema en las tablas de mi base de datos, una tabla
cambia su nombre en razon del año, por ejemplo XXX_04,XXX_03. ahora el
problema es como hacer referencia en el sql pasando como parametro el año.
he intentado crear una funcion que devuelva una tabla con sql dinamico pero
me sale un error:

Msg 156, Level 15, State 1, Procedure TAB_ALU, Line 11
Sintaxis incorrecta cerca de la palabra clave 'exec'.
Msg 170, Level 15, State 1, Procedure TAB_ALU, Line 11
Línea 11: sintaxis incorrecta cerca de 'substring'.

la consulta sql es la siguiente:


CREATE FUNCTION TAB_ALU
(

@v_fac AS VARCHAR(2),
@v_anual AS VARCHAR(4)

)
RETURNS TABLE
AS

RETURN (exec('select * from ' + @v_fac + substring(@v_anual,3,2) + '_ALU'))


so por favor me pudieran ayudar a resolver este problema.

chau y muchas gracias
CCALLOQUISPE
Respuesta Responder a este mensaje
#2 Alejandro Mesa
18/04/2006 - 14:35 | Informe spam
CCALLOQUISPE PALOMINO,

No se puede ejecutar stored procedures dentro de una funcion, al no ser que
esta sea extendido.

RETURN (exec('select * from ' + @v_fac + substring(@v_anual,3,2) + '_ALU'))



Por eso no se puede implementar sql dinamico dentro de una funcion de usuario.


AMB

"CCALLOQUISPE PALOMINO" wrote:

Hola:
tengo el siguiente problema en las tablas de mi base de datos, una tabla
cambia su nombre en razon del año, por ejemplo XXX_04,XXX_03. ahora el
problema es como hacer referencia en el sql pasando como parametro el año.
he intentado crear una funcion que devuelva una tabla con sql dinamico pero
me sale un error:

Msg 156, Level 15, State 1, Procedure TAB_ALU, Line 11
Sintaxis incorrecta cerca de la palabra clave 'exec'.
Msg 170, Level 15, State 1, Procedure TAB_ALU, Line 11
Línea 11: sintaxis incorrecta cerca de 'substring'.

la consulta sql es la siguiente:


CREATE FUNCTION TAB_ALU
(

@v_fac AS VARCHAR(2),
@v_anual AS VARCHAR(4)

)
RETURNS TABLE
AS

RETURN (exec('select * from ' + @v_fac + substring(@v_anual,3,2) + '_ALU'))


so por favor me pudieran ayudar a resolver este problema.

chau y muchas gracias
CCALLOQUISPE
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida