Gravando instruções Transact-SQL internacionais
Os bancos de dados e seus aplicativos que usam instruções Transact-SQL se tornarão mais portáveis de um idioma para outro, ou fornecerão suporte a vários idiomas, 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 Trabalhando com dados Unicode e Programação do lado do servidor com 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 a linguagem for definida como inglês dos EUA, retorna Mai quando a linguagem for definida como alemão e retorno mai quando a linguagem for definida 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] '} por exemplo: { ts'1998-09-24 10:02:20' }**
{ d'yyyy-mm-dd**'}** por exemplo: { d'1998-09-24**'}**
{ t'hh:mm:ss'} por exemplo: { 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 tipo de dados time, date, smalldate, datetime, datetime2 e datetimeoffset e os tipos de dados da 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 AdventureWorks2008R2.Sales.SalesOrderHeader WHERE OrderDate = CONVERT(DATETIME, '20060719', 101)
Para obter mais informações, consulte CAST e CONVERT (Transact-SQL).
Para obter mais informações sobre a portabilidade dos formatos de data e hora, consulte Usando dados de data e hora.
Consulte também