none
Consultas CaseSensitive RRS feed

  • Pregunta

  • Tengo este escenario:

    select @@DEFAULT_LANGID
    5
    
    select @@LANGID
    5
    
    select @@LANGUAGE
    Español select @@VERSION Microsoft SQL Server 2016 (SP2-GDR) (KB4505220) - 13.0.5101.9 (X64)  Jun 15 2019 23:15:58  Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor)


    La tabla Tiempos tiene un campo Evento con valores:  Activacion, ACTIVACION 

    select count(Evento) from dbo.tiempos WHERE evento='Activacion'     --  165 registos

    select count(Evento) from dbo.tiempos WHERE evento='ACTIVACION'  --  165 registos


    NO distingue entre Activacion, ACTIVACION

    Alguna sugerencia?

     


    lunes, 9 de marzo de 2020 15:29

Todas las respuestas

  • Deleted
    lunes, 9 de marzo de 2020 15:40
  • Que la consulta sea o no sea case-sensitive depende del COLLATION. Durante la instalacion, el valor predeterminado si no lo cambias es "sensible a acentos pero insensible a mayusculas". Ese es el valor predeterminado a nivel de instancia, pero opcionalmente puedes cambiarlo a nivel de base de datos, de columna, o incluso de cada consulta. Para cambiarlo en una consulta se hace asi:

    select count(Evento) from dbo.tiempos WHERE evento='ACTIVACION' COLLATE SQL_Latin1_General_CP1_CS_AS

    La parte donde dice "CS" es el "Case Sensitive". Si pones "CI" es "Case insensitive". El "AS" es "Accent Sensitive".

    lunes, 9 de marzo de 2020 15:54