Compartilhar via


Gravar instruções Transact-SQL internacionais

Os bancos de dados e aplicativos de bancos de dados que usarem instruções Transact-SQL se tornarão mais portáteis de uma linguagem de programação para outra ou darão suporte a várias linguagens, se as diretrizes a seguir forem cumpridas:

  • Substitua todos os usos do char, varchar e tipos de dados text por nchar, nvarchar e nvarchar(max). Fazendo isto, você não deve considerar assuntos relacionados à conversão de página de código. Para obter mais informações, consulte Suporte de agrupamento e unicode.

  • Ao executar comparações e operações de mês e dia da semana, use as partes de data numérica em vez de cadeias de caracteres de nomes. Configurações de linguagem diferentes retornam nomes diferentes para os meses e dias de semana. Por exemplo, DATENAME(MONTH,GETDATE()) retorna May quando o idioma está definido como inglês dos EUA, retorna Mai quando o idioma é definido como alemão e retorna mai quando o idioma é definido como francês. No lugar, use uma função como DATEPART que usa o número do mês ao invés do nome. Use os nomes DATEPART quando for construir conjuntos de resultados a serem exibidos a um usuário, pois os nomes de datas geralmente são mais significativos que uma representação numérica. Porém, não codifique qualquer lógica que dependa dos nomes exibidos sendo modificados em um idioma específico.

  • Quando especificar datas em comparações ou para entradas nas instruções INSERT ou UPDATE, use as constantes que são interpretadas da mesma maneira de todas as definições de linguagem:

    • Os aplicativos ODBC, ADO e OLE DB devem usar as cláusulas de fuga ODBC timestamp, data e hora para:

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

      { d' aaaa - mm - dd '} como: { d'1998- 09-24**'}**

      { t' hh: mm: ss '} como: { t'10:02:20'}

    • Os aplicativos que usam outras APIs ou scripts Transact-SQL, procedimentos armazenados e gatilhos, devem usar as sequências numéricas de não separadas. Por exemplo, yyyymmdd como 19980924.

    • Os aplicativos que usam outras APIs ou scripts Transact-SQL, procedimentos armazenados e gatilhos devem usar a instrução CONVERT com um parâmetro de estilo explícito para todas as conversões entre os timetipos de dados , date, smalldate, datetime, , datetime2 e datetimeoffset tipos de dados e cadeia de caracteres. Por exemplo, a instrução a seguir é interpretada da mesma maneira para todas configurações de conexão de formato de data ou de linguagem:

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

      Para obter mais informações, veja CAST e CONVERT (Transact-SQL).