2009-02-03 22 views
7

por ejemplo ...¿Los procedimientos almacenados de SQL distinguen entre mayúsculas y minúsculas?

ALTER PROCEDURE [dbo].[Reports_Dashboard_Get_Sav] 
    -- Add the parameters for the stored procedure here 
    @startDate datetime, 
    @endDate datetime, 
    @companyID int=null 

set @days=datediff(m,@startdate,@enddate) 
if (@days)=0 
    set @days=1 

Ésta no es mi código, pero si este es el caso sensible, entonces @days no va a ser calculado correctamente como el startDate/Fecha de inicio y endDate/enddate las variables no coinciden. ..

Respuesta

16

Pueden ser, dependiendo de la intercalación de su base de datos. Cuando instale SQL Server y elija su intercalación predeterminada, notará que hay una casilla de verificación "sensibilidad de mayúsculas y minúsculas". Ciertas intercalaciones distinguen entre mayúsculas y minúsculas y afectarán sus consultas (y procedimientos almacenados).

Peor aún, muchos proveedores no prueban sus productos en servidores con intercalaciones sensibles a las mayúsculas y minúsculas, lo que genera errores en el tiempo de ejecución.

+1

argh me ganaste - aquí hay un enlace tho http://aspadvice.com/blogs/ssmith/archive/2007/09/30/Case-Sensitive-or-Insensitive-SQL-Query.aspx – dbones

+0

¿Eso se aplica a nombres variables? ¿O solo datos? –

+0

Me sorprendió descubrir esto cuando obtuvimos acceso a otra base de datos en el trabajo: no solo los objetos de la base de datos eran sensibles a las mayúsculas y minúsculas, sino que también las consultas a los datos de la tabla. –

1

No. no T-SQL al menos ...

+0

Con la configuración predeterminada, está en lo correcto. Pero, si su servidor usa una intercalación de mayúsculas y minúsculas, entonces se llevará una sorpresa. No tengo idea de por qué la EM haría algo que (¡oh!) Es tan increíblemente estúpido. –

0

por lo que recuerdo, no están entre mayúsculas y minúsculas para los comandos SQL sí, he visto rutinariamente ellos escriben en minúscula. Estoy bastante seguro de que el resto no distingue entre mayúsculas y minúsculas, dado que es una extensión de la especificación T-SQL.

Cuestiones relacionadas