OK, do ponto de vista de um desenvolvedor de aplicativos, veja o que essas configurações fazem:
QUOTED_IDENTIFIER
Esta configuração controla como as aspas
".." são interpretados pelo compilador SQL. Quando QUOTED_IDENTIFIER está ON então as aspas são tratadas como colchetes ([...] ) e pode ser usado para citar nomes de objetos SQL como nomes de tabelas, nomes de colunas, etc. Quando está DESLIGADO (não recomendado), as aspas são tratadas como apóstrofos ('..' ) e pode ser usado para citar strings de texto em comandos SQL. ANSI_NULLS
Esta configuração controla o que acontece quando você tenta usar qualquer operador de comparação diferente de
IS em NULO. Quando está ON, essas comparações seguem o padrão que diz que comparar com NULL sempre falha (porque não é um valor, é um Flag) e retorna FALSE . Quando esta configuração está DESATIVADA (realmente não recomendado) você pode tratá-lo com sucesso como um valor e usar = , <> , etc. nele e receba de volta TRUE conforme apropriado. A maneira correta de lidar com isso é usar o
IS (ColumnValue IS NULL .. ). CONCAT_NULL_YIELDS_NULL
Esta configuração controla se NULLs "Propogar" quando usados em expressões de string. Quando esta configuração está ON, segue o padrão e uma expressão como
'some string' + NULL .. sempre retorna NULL. Assim, em uma série de concatenações de strings, um NULL pode fazer com que toda a expressão retorne NULL. Desativar isso (também não recomendado) fará com que os NULLs sejam tratados como strings vazias, então 'some string' + NULL apenas avalia para 'some string' . A maneira correta de lidar com isso é com a função COALESCE (ou ISNULL):
'some string' + COALESCE(NULL, '') .. .