2009-02-03 17 views
7

zum Beispiel ...Sind gespeicherte SQL-Prozeduren die Groß-/Kleinschreibung?

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 

Dies ist mein Code nicht aber, wenn dieser Fall ist empfindlich dann @days nicht richtig als startdate/startdate berechnet würde und endDate/enddate Variablen nicht übereinstimmen. ..

Antwort

16

Sie können abhängig von der Sortierung Ihrer Datenbank sein. Wenn Sie SQL Server installieren und Ihre Standardsortierung auswählen, werden Sie feststellen, dass das Kontrollkästchen "Groß-/Kleinschreibung beachten" aktiviert ist. Bei bestimmten Sortierungen wird die Groß-/Kleinschreibung beachtet. Dies wirkt sich auf Ihre Abfragen (und gespeicherten Prozeduren) aus.

Schlimmer noch, viele Anbieter testen ihre Produkte nicht auf Servern mit Groß- und Kleinschreibung, was zu Laufzeitfehlern führt.

+1

argh du schlägst mich - hier ist ein Link tho http://aspadvice.com/blogs/ssmith/archive/2007/09/30/Case-Sensitive-oder-Insensitive-SQL-Query.aspx – dbones

+0

Trifft das zu Variablennamen? Oder nur Daten? –

+0

Ich war überrascht, dies herauszufinden, als wir Zugriff auf eine andere Datenbank bei der Arbeit bekamen - nicht nur, dass Datenbankobjekte die Groß- und Kleinschreibung berücksichtigten, sondern auch Abfragen von Tabellendaten. –

1

Nein, nicht T-SQL mindestens ...

+0

Mit den Standardeinstellungen sind Sie richtig. Wenn Ihr Server jedoch eine Sortierung verwendet, bei der die Groß-/Kleinschreibung beachtet wird, sind Sie überrascht. Ich habe keine Ahnung, warum MS etwas tun würde, das (imho) so wahnsinnig dumm ist. –

0

Soweit ich mich erinnere, sie nicht zwischen Groß- und Klein für die SQL-Befehle selbst, ich habe sie als klein geschrieben routinemäßig gesehen. Ich bin mir ziemlich sicher, dass der Rest auch die Groß-/Kleinschreibung nicht beachtet, da es eine Erweiterung der T-SQL-Spezifikation ist.

Verwandte Themen