¿Puede alguien identificar las diferencias funcionales/de rendimiento, si existen, entre SET
y SELECT
en T-SQL? ¿En qué condiciones debo elegir una sobre la otra?SET vs. SELECT - ¿Cuál es la diferencia?
ACTUALIZACIÓN:
Gracias a todos los que respondieron. Como algunas personas señalaron, this artículo por Narayana Vyas Kondreddi tiene mucha información buena. También examinamos la red después de leer el artículo y encontré this versión condensada por Ryan Farley que ofrece los aspectos más destacados y pensé que podría compartir ellos:
- SET es el estándar ANSI para asignación de variables, no es SELECT.
- SET solo puede asignar una variable a por vez, SELECT puede realizar múltiples asignaciones a la vez.
- Si se asigna desde una consulta, SET puede asignar solo un valor escalar. Si la consulta devuelve múltiples valores/filas , SET generará un error. SELECT asignará uno de los valores de la variable y ocultar el hecho de que fueron devueltos múltiples valores (por lo que le probablemente nunca se sabe por qué algo iba mal en otro lugar - divertirse solución de problemas que uno)
- Al asignar de una consulta si hay hay valor devuelto a continuación, establezca se NULL Asignar, donde SELECT no realizar la asignación en absoluto (por lo que la variable no se cambiará de su valor anterior)
- en cuanto a las diferencias de velocidad - Hay no hay diferencias directas entre SET y SELECT. Sin embargo, la capacidad de de SELECT de realizar múltiples asignaciones de una sola vez le da una leve ventaja de velocidad sobre SET.
buena actualización; estado usando ambos operadores durante aproximadamente 3 años, pero no me di cuenta de las diferencias – whytheq