TransWikia.com

Como definir "charset" de uma tabela no SQL Server?

Stack Overflow em Português Asked by Vinícius Lima on January 22, 2021

No MySQL pra definir o charset de uma tabela podemos usar assim:

MySQL:

create table user_details (...) default character set = utf8;

Como posso fazer o mesmo no SQL Server?

2 Answers

Primeiro, UTF-8 é um encoding e não um charset. O charset a ser escolhido depende um pouco da codificação escolhida. O mesmo vale para as regras de conversão e busca do texto.

Não é possível, o SQL Server não suporta esta codificação. Coloque o texto em uma coluna nvarchar. Se for o caso pode especificar um collate entre os disponíveis, mas nenhum deles usará a codificação UTF-8.

Se precisa do dado nesta codificação precisa fazer com que a aplicação trate para usar UTF-8 e entregar isto como deseja, mas o dado não estará gravado neste formato. Um cliente específico para o SQL Server poderia até tratar isto transparentemente, não sei se algum o faz.

Se for absolutamente necessário poderia usar o varbinary e fazer a codificação por conta própria, mas duvido que isto seja melhor que a conversão.

Documentação.

Correct answer by Maniero on January 22, 2021

Você vai precisar mudar a definição da coluna para ser NVARCHAR. para ter suporte unicode.

Achei um exemplo na internet bem interessante para mostrar como pode fazer isso

Código:

USE Test
GO

/* Create Test table with non-unicode column */
IF OBJECT_ID('dbo.Test', 'U') IS NOT NULL
BEGIN
DROP TABLE dbo.Test
END

CREATE TABLE dbo.Test (Col1 VARCHAR(20))
GO


SELECT character_set_name,collation_name FROM information_schema.columns WHERE table_name = 'test'

/* Change to support unicode and ensure collation */
ALTER TABLE dbo.test ALTER COLUMN col1 NVARCHAR(20) COLLATE latin1_General_CI_AS
GO

SELECT character_set_name,collation_name  FROM information_schema.columns 
WHERE table_name = 'test'

Resumindo, você terá que converter Column Varchar para Nvarchar

Answered by João Victor Gomes Moreira on January 22, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP