Scrittura di istruzioni Transact-SQL internazionali

Data aggiornamento: 17 luglio 2006

Le linee guida seguenti consentono di aumentare il grado di portabilità tra lingue diverse, nonché il supporto di più lingue, per i database e le applicazioni di database che utilizzano istruzioni Transact-SQL.

  • Sostituire tutte le occorrenze dei tipi di dati char, varchar e text con nchar, nvarchar e nvarchar(max). In questo modo non si verificano problemi a livello di conversione della tabella codici. Per ulteriori informazioni, vedere Utilizzo di dati Unicode e Programmazione sul lato server con Unicode.
  • Quando si eseguono confronti e operazioni con mesi o giorni della settimana, utilizzare le parti numeriche della data anziché le stringhe di nomi. I nomi dei mesi e dei giorni della settimana restituiti variano a seconda dell'impostazione della lingua. Ad esempio, DATENAME(MONTH,GETDATE()) restituisce "May" se la lingua impostata è l'inglese (Stati Uniti), "Mai" se è impostato il tedesco e "mai" se è impostato il francese. Specificare pertanto una funzione quale DATEPART che utilizza il numero anziché il nome del mese. Utilizzare i nomi DATEPART quando si creano i set di risultati da visualizzare all'utente, in quanto le stringhe di nomi sono più significative delle parti numeriche. Non creare tuttavia il codice di logica che dipende dai nomi visualizzati di una lingua specifica.
  • Quando si specificano le date nei confronti o nell'input di istruzioni INSERT e UPDATE, utilizzare costanti che vengono interpretate nello stesso modo indipendentemente dall'impostazione della lingua:
    • Le applicazioni ADO, OLE DB e ODBC devono utilizzare le clausole di escape seguenti relative a timestamp, data e ora:
      { ts'yyyy-mm-ddhh**:mm:ss[.fff] '} ad esempio { ts'1998-09-24 10:02:20' }**
      { d'yyyy-mm-dd**'}** ad esempio { d'1998-09-24**'}**
      { t'hh:mm:ss'} ad esempio { t'10:02:20'}

    • Nelle applicazioni che utilizzano altre API, oppure script, stored procedure e trigger di Transact-SQL, è necessario utilizzare le stringhe numeriche non separate, ad esempio yyyymmdd come 19980924.

    • Nelle applicazioni che utilizzano altre API oppure script, stored procedure e trigger di Transact-SQL è inoltre possibile utilizzare l'istruzione CONVERT con un parametro di stile esplicito per tutte le conversioni tra i tipi di dati date e smalldate e i dati di tipo stringa di caratteri. L'istruzione seguente viene interpretata nello stesso modo indipendentemente dalle impostazioni di connessione della lingua o del formato della data:

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

      Per ulteriori informazioni, vedere CAST e CONVERT (Transact-SQL).

Vedere anche

Altre risorse

Considerazioni sul supporto internazionale per database e applicazioni di Motore di database

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

17 luglio 2006

Contenuto modificato:
  • Sostituzione del riferimento al tipo di dati ntext con il tipo di dati nvarchar(max).