SET vs. SELECT – ¿Cuál es la diferencia?

¿Puede alguien identificar las diferencias funcionales/de rendimiento, si las hay, entre y en T-SQL? ¿En qué condiciones debo elegir uno sobre el otro?SETSELECT


ACTUALIZACIÓN:
Gracias a todos los que respondieron. Como algunas personas señalaron, este artículo de Narayana Vyas Kondreddi tiene mucha buena información. También leí detenidamente la red después de leer el artículo y encontré esta versión condensada de Ryan Farley que ofrece los aspectos más destacados y pensé que los compartiría:

  1. SET es el estándar ANSI para la asignación de variables, SELECT no lo es.
  2. SET solo puede asignar una variable a la vez, SELECT puede realizar varias asignaciones a la vez.
  3. Si se asigna desde una consulta, SET solo puede asignar un valor escalar. Si la consulta devuelve varios valores/filas, SET generará un error. SELECT asignará uno de los valores a la variable y ocultará el hecho de que se devolvieron varios valores (por lo que es probable que nunca sepa por qué algo iba mal en otro lugar, diviértase solucionando problemas de ese)
  4. Al asignar desde una consulta si no hay ningún valor devuelto, SET asignará NULL, donde SELECT no realizará la asignación en absoluto (por lo que la variable no se cambiará de su valor anterior)
  5. En cuanto a las diferencias de velocidad, no hay diferencias directas entre SET y SELECT. Sin embargo, la capacidad de SELECT para realizar múltiples asignaciones en una sola toma le da una ligera ventaja de velocidad sobre SET.
Respuestas:5 Respuestas 5
Tiempo:hace 13 años, 3 meses
Última modificación:hace 4 años, 10 meses

Solución

SET es la forma estándar ANSI de asignar valores a las variables, y SELECT no lo es. Pero puede usar SELECT para asignar valores a más de una variable a la vez. SET le permite asignar datos a una sola variable a la vez. Así que en rendimiento es donde SELECT será un ganador.

Para obtener más detalles y ejemplos, consulte: Diferencia entre SET y SELECT al asignar valores a variables

Otras respuestas

Set es el estándar ANSI para asignar valores a variables.

Select se puede utilizar al asignar valores a varios vairables.

Para obtener más detalles, lea esta publicación detallada de Narayana Vyas

Deja un comentario