none
Vista dinamica RRS feed

  • Pregunta

  • Saludos,

    Teniendo:

    SELECT * FROM vMiVista

    Donde vMiVista es una vista con algo como.

    SELECT * FROM tMiTabla

    Si ahora tMiTabla se ha separado por empresas... tMiTabEmpreaX, tMiTablaEmpresay

    Hay alguna manera de seguir usando algo como vMiVista y que de forma "Dinamica" consulte sobre la tabla a la que de lugar.

    Gracias de antemano,

    miércoles, 2 de mayo de 2012 15:26

Respuestas

  • Hola.

    Podrías recurrir a algún tipo de argucia (jugar con los usuarios por defecto y los esquemas, así que se me ocurra). Más allá de eso, podrías cambiar la vista para que apunte a una de las tablas. Pero no podrás lograr que apunte a la tabla que tú quieras en función de algún tipo de variable.

    Otra cosa que puedes hacer es preparar la vista como una unión de varias tablas, con un campo que permita luego realizar el filtro, pero una vista no es dinámica y no recibe parámetros. Según sospecho, tendrás que modificar las aplicaciones.

    Es más común dividir la información en varias bases de datos. De ese modo sí, cambias la cadena de conexión y apuntas a cada base de datos.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    miércoles, 2 de mayo de 2012 15:41
    Moderador

Todas las respuestas

  • Hola.

    Podrías recurrir a algún tipo de argucia (jugar con los usuarios por defecto y los esquemas, así que se me ocurra). Más allá de eso, podrías cambiar la vista para que apunte a una de las tablas. Pero no podrás lograr que apunte a la tabla que tú quieras en función de algún tipo de variable.

    Otra cosa que puedes hacer es preparar la vista como una unión de varias tablas, con un campo que permita luego realizar el filtro, pero una vista no es dinámica y no recibe parámetros. Según sospecho, tendrás que modificar las aplicaciones.

    Es más común dividir la información en varias bases de datos. De ese modo sí, cambias la cadena de conexión y apuntas a cada base de datos.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    miércoles, 2 de mayo de 2012 15:41
    Moderador
  • Concuerdo en gran parte con qwalgrande aquí.  Nada más me detuve a recordarle que existen funciones de tabla que sí admiten parámetros y por lo tanto pueden devolver una tabla de una forma más "dinámica" y tal vez sea lo que usted busca.

    Jose R. MCP

    miércoles, 2 de mayo de 2012 18:07
  • Si existen funciones de tabla ciertamente, pero cuando otras tablas hacen joins con ellas habria que cambiar los queries igual que es lo que no se queria, ademas el rendimiento de funciones donde se crea una variable de tabla y se hace un insert y todo aquello no parece ser bueno para el rendimiento.

    Nada atendiendo a lo que me recomendo alguien. Separa la BD por companias y que las APP apunten a cada BD. Creo que es lo que recomendable en muchos caso de APP multicompania. Menos bloqueos, mas transportables las BD, menos tamanos de archivos, mas escalables las APP. Un poco mas de trabajo en tareas administrativos, pero bueno... There's no such thing as a free lunch.

    Gracias a todos,

    miércoles, 2 de mayo de 2012 20:52