¿Arreglos o arrays en SQL Server ?
Varios me preguntan como hacer un array (arreglo, matriz, vectores) en SQL Server. ¿Es serio no existen ?.
¿ Porqué ?.
Para un programador no tiene sentido, pero para los que trabajamos con bases de datos, más bien nos extraña que quieran usar arreglos.
Ahora, para la gente que le gusta simular vectores, hay un artículo muy interesante de otro MVP que les puede ayudar en su cometido (lamentablemente está en inglés, pero con ayuda de un traductor, estoy seguro que les será útil):
http://www.projectdmx.com/tsql/sqlarrays.aspx
Bueno ahora me toca explicar porqué no hay arrays en SQL Server. Simplemente porque consideran más práctico guardar los datos en tablas. Ya sean tablas temporales, CTEs, variables de tipo tabla. En T-SQL, lo más práctico para nosotros es almacenar los datos ahí. Ahora, en las tablas no se usan ciclos y habrá que ver las necesidades del programador para entender cómo ayudarlo en sus necesidades de programación.
Author: Daniel Calbimonte
¿ Porqué ?.
Para un programador no tiene sentido, pero para los que trabajamos con bases de datos, más bien nos extraña que quieran usar arreglos.
Ahora, para la gente que le gusta simular vectores, hay un artículo muy interesante de otro MVP que les puede ayudar en su cometido (lamentablemente está en inglés, pero con ayuda de un traductor, estoy seguro que les será útil):
http://www.projectdmx.com/tsql/sqlarrays.aspx
Bueno ahora me toca explicar porqué no hay arrays en SQL Server. Simplemente porque consideran más práctico guardar los datos en tablas. Ya sean tablas temporales, CTEs, variables de tipo tabla. En T-SQL, lo más práctico para nosotros es almacenar los datos ahí. Ahora, en las tablas no se usan ciclos y habrá que ver las necesidades del programador para entender cómo ayudarlo en sus necesidades de programación.
Author: Daniel Calbimonte
Hola en mi opinión como programadora creo que es necesario el uso de arreglos en sql, sobre todo en la clausula "where" pues es mucho más fácil enviar todo un vector de ids que colocarlos manualmente, ¿no se si me explique?.
ResponderEliminarHe estado buscando en diversos foros si existe esta opción pero no hay nada claro, por favor que alguien me explique!!!
Meis
Ana, no entiendo que quieres.
ResponderEliminarPodrías explicar con mas detalle ?
Ana quiere decir que es más fácil:
ResponderEliminarSELECT * FROM Tabla WHERE ID = arrayIDs
que:
SELECT * FROM Tabla WHERE ID = param1 OR ID = param2 OR ID = param3
Gracias!
Para ese caso se usa una tabla con los parámetros (lo voy a llamar LISTAPARAMETROS) y luego haces esto:
ResponderEliminarSELECT * FROM TABLA WHERE ID IN (SELECT ID FROM LISTAPARAMETROS)
SELECT * FROM Tabla WHERE ID IN (param1, param2, param3)
ResponderEliminarPrefiero mi método porque si el "vector" tiene 1000 parámetros no es bueno usar varias comas.
ResponderEliminarUsar parámetros y vectores en bases de datos, lo vuelve ineficiente.