Me di cuenta de que SQL server '=' comparador cuando se utiliza para la comparación de texto es insensible a mayúsculas-minúsculas. Tengo un par de preguntas con respecto a esta funcionalidad:

  1. Es el mismo para todas las bases de datos o específica de SQL server?
  2. He estado usando el lower función de garantizar la comparación de texto es insensible hasta ahora. Es una buena idea seguir el mismo?
  3. ¿Cómo podemos hacer caso sensibles comparaciones en SQL server?
  4. ¿Por qué es '=' operador el uso de mayúsculas y minúsculas comparación?
  • Estoy bastante seguro de que es el mismo para cualquier base de datos con una intercalación entre mayúsculas y minúsculas. Es casi, si no completamente plataforma agnóstica (MySQL, SQL Server, PostgreSQL, etc).
  • Puede totalmente SE entre mayúsculas y minúsculas – que depende de la intercalación base de datos SQL Server utiliza!
  • Que locura, que sólo podría trabajar 🙂
  • tenga en cuenta que usted puede establecer una intercalación de una columna, así que si usted tiene una columna que siempre va a ser sensible a mayúsculas y minúsculas, quizás debería cambiar de lugar de siempre llama lower
  • Depende de alcance.
InformationsquelleAutor rkg | 2011-02-08

5 Comentarios

  1. 25

    No, en caso de que la sensibilidad no tiene nada que ver con el signo de igual.

    Caso de que la sensibilidad está determinada por la intercalación de la base de datos — consulte la documentación para obtener más detalles.

    • No se dispone de ninguna información sobre lo que el estándar SQL-92, o tal decir sobre el caso de la sensibilidad y la intercalación?
    • Única cosa que sé acerca de ANSI & intercalación es el manejo de relleno & espacios, lo siento.
    • En Microsoft SQL Server caso-sensibilidad está determinada por la intercalación de la columna(s) de que se trate y no por la intercalación de la base de datos.
    • href=»http://msdn.microsoft.com/en-us/library/ms143508%28SQL.90%29.aspx» >SQL Server admite la configuración de intercalación en el exression, columna, base de datos, y el servidor/instancia niveles. En ese orden, AFAIK si no hay nada que establezca que toma la intercalación de la siguiente nivel.
    • El OP ha mencionado siquiera columnas en la pregunta. Se podría igualmente bien estar hablando de IF 'Z' = 'z' PRINT 'Yes'
    • verdadero. SI no hay columnas que intervienen a continuación, la sensibilidad está determinada por la base de datos y/o la intercalación del servidor. Como regla general, sin embargo, la intercalación de base de datos no es un factor determinante. Cada columna tiene una intercalación y siempre es la intercalación de la columna, no la intercalación de base de datos que determina las reglas de comparación para una columna.

  2. 12

    Caso de la sensibilidad sólo depende de la intercalación.
    Puede especificar la intercalación dentro de cada '=' operación

    SELECT  *
      FROM  [Table_1] a inner join
            [Table_2] b on a.Col1=b.Col2 collate Modern_Spanish_CS_AI
  3. 5

    He estado usando la parte inferior de la función de asegurar la comparación de texto es insensible hasta ahora. Es una buena idea seguir el mismo?

    Absolutamente no. Generalmente se excluye el uso de un índice si usted hace esto. El viejo y simple = (o < o > o lo que sea) va a trabajar o no dependiendo del cotejo de la que usted ha elegido. De no hacerlo, «sólo para estar seguro». Las pruebas se asegurará de que usted tiene derecho.

  4. 3

    El caso de la sensibilidad de las operaciones en SQL Server se determina durante la instalación cuando se establece la intercalación de la base de datos. En ese momento usted puede elegir la instalación de SQL Server, ya que no distingue mayúsculas de minúsculas (por defecto) o mayúsculas de minúsculas.

    http://msdn.microsoft.com/en-us/library/aa197951(v=sql.80).aspx

    • En Microsoft SQL Server caso-sensibilidad está determinada por la intercalación de la columna(s) de que se trate y no por la intercalación de la base de datos.
  5. 1

    La comparación que se hace depende de la intercalación de que usted ha elegido para el campo. Si cambia el campo a utilizar un caso sensetive de intercalación, las comparaciones se caso sensetive.

    Por defecto de los campos de utilizar el conjunto de intercalación de la base de datos, pero cada campo puede tener su propia configuración de intercalación.

Dejar respuesta

Please enter your comment!
Please enter your name here