Pergunta

Eu preciso de uma consulta SQL para fazer todos os dados em uma coluna UPPER CASE?

Todas as idéias?

Foi útil?

Solução

Permanente:

UPDATE
  MyTable
SET
  MyColumn = UPPER(MyColumn)

temporária:

SELECT
  UPPER(MyColumn) AS MyColumn
FROM
  MyTable

Outras dicas

Se você quiser única atualização sobre linhas que não estão a maiúsculas (em vez de todas as linhas), você precisa para identificar a diferença usando COLLATE assim:

UPDATE MyTable
SET    MyColumn = UPPER(MyColumn)
WHERE  MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS 

Um pouco sobre Agrupamento

sensibilidade

Casos é baseado em suas configurações de agrupamento, e é tipicamente maiúsculas e minúsculas por padrão.

Agrupamento pode ser definido no Servidor , banco de dados, coluna ou consulta Nível:

-- Server
SELECT SERVERPROPERTY('COLLATION')
-- Database
SELECT name, collation_name FROM sys.databases
-- Column 
SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE CHARACTER_SET_NAME IS NOT NULL

Agrupamento nomes especificar como uma string deve ser codificado e ler, por exemplo:

  • Latin1_General_CI_AS ? Insensitive Case
  • Latin1_General_CS_AS ? Case Sensitive
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top