2009-02-03 21 views
7

...SQL saklı yordamlar büyük/küçük harfe duyarlıdır? örneğin

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 

Bu benim kod değil ama bu durumda duyarlı sonra @days değişkenler eşleşmiyor ve endDate/enddate startDate/STARTDATE olarak düzgün hesaplanacak gitmiyor. SQL kendilerini komutları için ..

cevap

16

Veritabanınızın harmanlamasına bağlı olarak olabilirler. SQL Server'ı yüklediğinizde ve varsayılan harmanlamayı seçtiğinizde, "büyük/küçük harf duyarlılığı" onay kutusunun olduğunu fark edersiniz. Bazı harmanlamalar büyük/küçük harfe duyarlıdır ve sorgularınızı (ve saklı yordamları) etkileyecektir.

Daha da kötüsü, birçok satıcı ürünlerini büyük/küçük harf duyarlı harmanlamalarla sunucularda test etmiyor, bu da çalışma zamanı hatalarına neden oluyor.

+1

argo beni dövüyorsun - burada bir bağlantı var http://aspadvice.com/blogs/ssmith/archive/2007/09/30/Case-Sensitive-or-Insensitive-SQL-Query.aspx – dbones

+0

Bu geçerli değişken isimler? Ya da sadece veri? –

+0

İşyerinde başka bir veritabanına eriştiğimizde bunu bulmak beni şaşırttı - sadece veritabanı nesneleri büyük/küçük harfe duyarlı değildi, aynı zamanda tablo verisine karşı sorular vardı. –

1

sayılı değil T-SQL

Hatırladığım kadarıyla
+0

Varsayılan ayarlarla siz haklısınız. Ancak, sunucunuz büyük/küçük harfe duyarlı bir harmanlama kullanıyorsa, o zaman bir sürprizle karşılaşırsınız. MS'nin neden bir şey yapacağı konusunda hiçbir fikrim yok (imho) bu kadar aptalca aptalca. –

0

... en azından onlar küçük harfe duyarlı değildir, ben rutin onları küçük harflerle olarak yazılır gördüm. Geri kalanın da büyük ölçüde T-SQL spesifikasyonunun bir uzantısı olduğu göz önüne alındığında eminim.

İlgili konular