2009-02-03 17 views
7

per esempio ...Le stored procedure SQL sono sensibili al maiuscolo/minuscolo?

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 

Questo non è il mio codice, ma se questo è case sensitive quindi @days non sta per essere calcolato correttamente come la startDate/StartDate e endDate/enddate variabili non corrispondono. ..

risposta

16

Possono essere, in base alle regole di confronto del database. Quando si installa SQL Server e si scelgono le regole di confronto predefinite, si noterà che è presente una casella di controllo "distinzione tra maiuscole e minuscole". Alcune regole di confronto rispettano la distinzione tra maiuscole e minuscole e influiscono sulle query (e sulle stored procedure).

Ancora peggio, molti fornitori non testano i propri prodotti sui server con regole di confronto sensibili al maiuscolo/minuscolo, il che porta a errori di runtime.

+1

argh mi hai battuto - ecco un link tho http://aspadvice.com/blogs/ssmith/archive/2007/09/30/Case-Sensitive-or-Insensitive-SQL-Query.aspx – dbones

+0

Questo vale per nomi variabili? O solo dati? –

+0

Sono stato sorpreso di scoprirlo quando abbiamo ottenuto l'accesso a un altro database al lavoro: non solo gli oggetti del database erano sensibili alle maiuscole e minuscole, ma lo erano anche le query sui dati della tabella. –

1

No. non T-SQL, almeno ...

+0

Con le impostazioni predefinite sei corretto. Tuttavia, se il tuo server utilizza una regola di confronto con distinzione tra maiuscole e minuscole, sei sorpreso. Non ho idea del motivo per cui MS farebbe qualcosa che (imho) è così follemente stupido. –

0

Se ricordo bene, non sono case sensitive per se stessi comandi SQL, ho regolarmente visti scritti in minuscolo. Sono abbastanza sicuro che il resto è insensibile alle maiuscole e minuscole, dato che è un'estensione delle specifiche T-SQL.

Problemi correlati