Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 13630|Resposta: 0

[Gorjetas] Veja instruções SQL no formato de codificação SQLserver e nas regras de colação Sqlserver

[Copiar link]
Publicado em 27/10/2016 12:50:16 | | | |
SELECIONE COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
Aqui estão os resultados da consulta:
936 Chinês Simplificado GBK
950 Tradicional Chinês BIG5
437 Inglês EUA/Canadá
932 Japoneses
949 Coreano
866 Russo
Unicode 65001 UFT-8




Ao instalar o SQL SERVER 2008, porque escolhemos a instalação padrão, criamosQuando é banco de dados, a regra padrão de ordenação selecionada pelo servidor é uma regra de SQL_Latin1_General_CP1_CI_AS de colação, de modo que, ao inserir texto na tabela de dados, ele não será exibido normalmente, tudo com "? em vez disso.
Então, ao criarmos um banco de dados, precisamos especificar manualmente uma regra de colação, que pode ser selecionada como Chinese_PRC_CI_AS colação, como mostrado na figura abaixo





Regras de seleção:
As regras de ordenação usadas em SQLSEVER2005 são SQL_Latin1_General_CP1_CI_AS, não as três regras de ordenação que podem exibir corretamente caracteres chineses simplificados:
Chinese_PRC_BIN,
Chinese_PRC_CI_AS,
Chinese_PRC_CS_AS。
Dê uma olhada na explicação da MS sobre a colação: Regras de Coletão Controlam o Armazenamento Físico de Strings no SQL Server 2005. As regras de colação especificam o padrão de bits que representa cada caractere e as regras para armazenar e comparar o uso dos caracteres.
Ou seja, no SQLSERVER, a colação é na verdade a codificação de caracteres.
Ao executar a seguinte instrução no analisador de consultas, você pode obter todas as regras de colação suportadas pelo SQL SERVER.
selecione * de ::fn_helpcollations()
O nome da colação consiste em duas partes, sendo a primeira parte referida ao conjunto de caracteres suportado por essa colação.
Por exemplo: Chinese_PRC_CS_AI_WS
A primeira metade refere-se ao conjunto de caracteres UNICODE, e Chinese_PRC_refers às regras de ordenação para o caractere chinês simplificado UNICODE.
A segunda metade da colação é o significado do sufixo:
_BIN Ordenação binária
_CI(CS) Se é sensível a maiúsculas minúsculas, CI não é sensível e CS é sensível
_AI (AS) Se distinguir entre sotaques, a IA não distingue, a AS distingue
_KI(KS) Se distinguir entre tipos de pseudônimos, KI não distingue, KS distingue
_WI(WS) não é distinguido por largura, WS não é diferenciado
Sensível de maiúsculas e minúsculas: Selecione esta opção se quiser comparações para tratar letras maiúsculas e minúsculas como desiguais.
Distinga entre sotaques: Selecione esta opção se quiser comparações para tratar letras acentuadas e não acentuadas como desiguais. Se você selecionar essa opção, a comparação também trata letras com diferentes acentos como desiguais.
Distinguir Kana: Selecione esta opção se quiser que a comparação trate as sílabas do Katakana e do Dia do Hiraka como desiguais.
Diferenciação de largura: Selecione esta opção se quiser que a comparação trate caracteres de meia largura e largura total como desiguais.
Após entender as regras de colação no SQLSERVER, as seguintes conclusões podem ser tiradas para o problema acima:
1. Modificar o banco de dados de usuários SQLSERVER para suportar a colação de conjuntos de caracteres chineses.
2: Para a exibição dos caracteres chineses??, mas não quiser alterar as regras de ordenação no banco de dados e quiser exibir corretamente os caracteres chineses, recomenda-se usar todos os campos de tipos Unicode no design, ou seja, aqueles tipos de campo que começam com N, como nChar, nVarchar, para exibir corretamente os caracteres chineses.
3: Se você não quiser mudar a regra de colação ou o tipo de campo, então precisa alterar a instrução SQL, e para todos os caracteres chineses, também deve adicionar N na frente para exibi-la corretamente. Por favor, consulte as duas afirmações a seguir para métodos específicos:
Consulta: selecione * de tb_Cust onde NomePróprio=N'Wang'
Inserir: insira valores tb_Cust(Nome, Sobrenome, Sexo) (N'Wang', N'Xinhao', N'Male')
Nota: No futuro, será mais complicado modificar a regra de coletão em nível de servidor após SQLSERVER2000, e é necessário reconstruir o banco de dados mestre.

Atualmente, para bancos de dados que já foram criados, também podemos alterar o método de colação na página de opções na janela de propriedades do banco de dados, para que, ao inserir texto na tabela de dados, não haja mensagens de erro!





Anterior:SQL determina se uma coluna contém caracteres chineses ou ingleses
Próximo:SQL determina se uma coluna contém caracteres chineses ou ingleses
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com