Bien, desde el punto de vista de un desarrollador de aplicaciones, esto es lo que hacen estas configuraciones:
QUOTED_IDENTIFICADOR
Esta configuración controla cómo se marcan las comillas ".."
son interpretados por el compilador SQL. Cuando QUOTED_IDENTIFIER
está activado, las comillas se tratan como corchetes ([...]
) y se puede usar para citar nombres de objetos SQL como nombres de tablas, nombres de columnas, etc. Cuando está APAGADO (no recomendado), las comillas se tratan como apóstrofes ('..'
) y se puede usar para citar cadenas de texto en comandos SQL.
ANSI_NULLS
Esta configuración controla lo que sucede cuando intenta usar cualquier operador de comparación que no sea IS
en NULL. Cuando está activado, estas comparaciones siguen el estándar que dice que la comparación con NULL siempre falla (porque no es un valor, es una bandera) y devuelve FALSE
. Cuando esta configuración está DESACTIVADA (realmente no recomendado) puede tratarlo con éxito como un valor y usar =
, <>
, etc. en él y obtener TRUE según corresponda.
La forma correcta de manejar esto es usar el IS
(ColumnValue IS NULL ..
).
CONCAT_NULL_YIELDS_NULL
Esta configuración controla si NULL "Propagar" cuando se usa en expresiones de cadena. Cuando esta configuración está activada, sigue el estándar y una expresión como 'some string' + NULL ..
siempre devuelve NULL. Por lo tanto, en una serie de concatenaciones de cadenas, un NULL puede hacer que toda la expresión devuelva NULL. Desactivar esto (tampoco se recomienda) hará que los valores NULL se traten como cadenas vacías, por lo que 'some string' + NULL
simplemente se evalúa como 'some string'
.
La forma correcta de manejar esto es con la función COALESCE (o ISNULL):'some string' + COALESCE(NULL, '') ..
.