none
AÑADIR UNA VARIABLE A LA CLAUSULA TOP EN UNA CONSULTA SQL RRS feed

  • Pregunta

  • Buenas tardes,

    Estoy intentanto usar una variable en la clausula top en una consulta sql dentro de una caja de integrations services y no me da fallo, es posible o estoy haciendo algo mal.

    Lo que tengo es esto:

    SELECT TOP @UNO  EMAIL FROM AX_EMAILS.

    En el parameter mapping tengo la variable puesta.

    esa mas si hago esto funciona.

    select * from ax_emails where id=@uno.

     

    Muchas gracias.

     

    lunes, 24 de octubre de 2011 17:02

Respuestas

  • el driver al menos en 2005 no parece ser capaz de leerlo. te sugiero que lo cambies por una consulta desde variable y cambies la consulta de forma dinámica según ese parámetro. otra alternativa es si te has fijado un orden concreto hacer algo así en tu query.

    select * from (select row_number() over(order by table_name) fila,* from information_Schema.tables) a where fila<=?

     


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA
    • Marcado como respuesta vigasi martes, 25 de octubre de 2011 7:33
    lunes, 24 de octubre de 2011 19:07
    Moderador

Todas las respuestas

  • el driver al menos en 2005 no parece ser capaz de leerlo. te sugiero que lo cambies por una consulta desde variable y cambies la consulta de forma dinámica según ese parámetro. otra alternativa es si te has fijado un orden concreto hacer algo así en tu query.

    select * from (select row_number() over(order by table_name) fila,* from information_Schema.tables) a where fila<=?

     


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA
    • Marcado como respuesta vigasi martes, 25 de octubre de 2011 7:33
    lunes, 24 de octubre de 2011 19:07
    Moderador
  • Creo que el problema es simplemente que no has puesto los paréntesis

    Pon: SELECT TOP (@UNO) EMAIL FROM AX_EMAILS.

    La cláusula ANSI incluye los paréntesis. El no  ponerlos en un futuro será descontinuado.

     

    un saludo


    Atentamente, Enrique Catala Bañuls
    martes, 25 de octubre de 2011 15:26
  • No Enrique es que SSIS además debe parsear de alguna forma para cambiar la ? por la variable.. y no lo hace bien ni siquiera con los paréntesis.  por eso le propuse esta otra solución.


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA
    jueves, 27 de octubre de 2011 15:41
    Moderador