Uluslararası Transact-SQL deyimleri yazma

Veritabanları ve veritabanı uygulamaları kullananTransact-SQLifade başka bir dilden daha taşınabilir olur ve aşağıdaki yönergeleri izlediyseniz, birden çok dili destekler:

  • Tüm kullanımlarını değiştirirchar,varchar, vetextveri türlerininnchar,nvarchar, andnvarchar(max).Bunu yaptığınızda, kod sayfa dönüştürme göz gerekmez.Daha fazla bilgi için bkz: Unicode verilerle çalışma ve Unicode ile sunucu tarafı programlama.

  • Ay ve gün, hafta karşılaştırmaları ve işlemler gerçekleştirdiğinizde, sayısal tarih bölümü yerine adı dizesini kullanın.Ay ve haftanın günleri için farklı adlar farklı dil ayarlarını döndürür.Örneğin, ABD'de dil ayarlandığında Mayıs DATENAME(MONTH,GETDATE()) verirİngilizce dili Almanca için küme ve Fransızca dilini posta döner posta verir.Bunun yerine, bir işlev adı yerine ay sayısını kullanan DATEPART gibi kullanın.Tarih adları sayısal gösterimi sık daha anlamlı olduğu için bir kullanıcı için görüntülenecek sonuç kümesi oluştururken DATEPART adları kullanın.Ancak, belirli bir dil olan görüntülenen adları bağlı bir mantık kodu değil.

  • Karşılaştırma veya INSERT veya UPDATE deyimi giriş için tarih belirttiğinizde, tüm dil ayarları ile aynı şekilde yorumlanır sabitleri kullanın:

    • ADO, OLE DB ve ODBC uygulamalarının ODBC saat damgası, tarih ve saat, çıkış yan kullanmalısınız:

      { ts'yyyy-mm-ddhh**:mm:ss[.fff] '} such as: { ts'1998-09-24 10:02:20' }**

      { d'yyyy-mm-dd**'}** such as: { d'1998-09-24**'}**

      { t'hh:mm:ss'} such as: { t'10:02:20'}

    • Diğer API'leri kullanan uygulamalar veyaTransact-SQLkomut dosyaları, saklı yordamları ve tetikleyicileri, kullanması gereken unseparated sayısal dize.Örneğin,yyyymmddolarak 19980924.

    • Diğer API'leri kullanan uygulamalar veyaTransact-SQLkomut, saklı yordamları ve Tetikleyicileri kullanması gereken CONVERT deyim ile bir açık stili parametresi tüm dönüşümler içintime,date,smalldate,datetime, datetime2, anddatetimeoffsetveri türleri ve karakter dizesi veri türü.Örneğin, aşağıdaki ifadeyi tüm dil veya tarih biçimi bağlantı ayarları ile aynı şekilde değerlendirilir:

      SELECT *
      FROM AdventureWorks.Sales.SalesOrderHeader
      WHERE OrderDate = CONVERT(DATETIME, '19960719', 101)
      

      Daha fazla bilgi için bkz: CAST ve CONVERT (Transact-SQL).

      Tarih ve saat biçimlerinin taşınabilirlik hakkında daha fazla bilgi içinTarih ve saat veri kullanma.