AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 289240
Accepted
Cell-o
Cell-o
Asked: 2021-04-05 05:04:13 +0800 CST2021-04-05 05:04:13 +0800 CST 2021-04-05 05:04:13 +0800 CST

para alterar o agrupamento do banco de dados do sistema SQL Server 2017

  • 772

Estamos usando o banco de dados SQL Server 2017 CU23 Standard Edition atualizado com "SQL_Latin1_General_CP1_CI_AS". Agora, quero alterar todos os bancos de dados do sistema (master , model , temp, msdb) para outro agrupamento. como mudar isso sem instalar o SQL Server?

obrigado,

collation sql-server-2017
  • 3 3 respostas
  • 1612 Views

3 respostas

  • Voted
  1. Best Answer
    Solomon Rutzky
    2021-04-05T06:15:12+08:002021-04-05T06:15:12+08:00

    A única maneira de alterar o agrupamento para a própria instância (bancos de dados de nível de instância e do sistema mais bancos de dados do usuário) sem reinstalar é um comando/opção não documentado. A opção "reconstruindo bancos de dados do sistema" mencionada nas outras respostas está efetivamente reinstalando, mesmo que não seja no sentido literal, nem essa abordagem atualiza nenhum banco de dados do usuário para corresponder ao novo agrupamento.

    Publiquei uma análise detalhada dessa abordagem não documentada e as implicações de fazer qualquer alteração de agrupamento em uma instância e/ou banco de dados aqui:

    Alterando o agrupamento da instância, os bancos de dados e todas as colunas em todos os bancos de dados do usuário: o que pode dar errado?

    Existem algumas áreas que podem ser afetadas, e isso depende muito se você está falando sobre apenas um banco de dados específico, ou a instância e um ou mais bancos de dados nessa instância, e se você possui VARCHARdados contendo caracteres com valores de 128 - 255, e se você estiver alternando as sensibilidades (por exemplo, diferencia maiúsculas de minúsculas para maiúsculas e minúsculas ou vice-versa).

    Sobre a ALTER DATABASE ... COLLATE ...opção:

    1. Isso não funciona em bancos de dados do sistema.
    2. Isso não é permitido se você tiver uma das muitas dependências (por exemplo, TVFs retornando colunas de strings, colunas computadas retornando tipos de strings, etc).
    3. Para bancos de dados de usuários onde é permitido, apenas altera as tabelas do sistema (por exemplo sys.objects, sys.schemas, , etc); não altera nenhuma tabela de usuário (colunas ou índices)
    • 4
  2. J.D.
    2021-04-05T05:34:22+08:002021-04-05T05:34:22+08:00

    Os Manuais Online da Microsoft para definir ou alterar o agrupamento de banco de dados explicam como fazer isso, especificamente como no SSMS na seção Usando o SQL Server Management Studio . Alternativamente, você pode criar um script assim:

    ALTER DATABASE DatabaseName  
    COLLATE French_CI_AS;
    

    Se nenhuma dessas opções funcionar para bancos de dados do sistema, não será possível fazer isso sem executar o instalador ou reconstruir os bancos de dados do sistema .

    De qualquer forma, aconselho ter cuidado ao alterar o agrupamento dos bancos de dados do sistema, pois você pode ter vários problemas se não for feito corretamente. Por exemplo, um agrupamento que diferencia maiúsculas de minúsculas que precisa interagir com um contexto que não diferencia maiúsculas de minúsculas pode entrar em conflito e produzir erros. Também usar a COLLATEfunção para comparar entre dois contextos de agrupamento diferentes pode resultar em problemas de estimativa de cardinalidade .

    Além disso, observe que, se você definir o modelbanco de dados para um agrupamento diferente do agrupamento do servidor, todos os bancos de dados recém-criados terão o mesmo agrupamento do banco de dados e ignorarão o agrupamentomodel do servidor .

    • 1
  3. Dan Guzman
    2021-04-05T05:29:50+08:002021-04-05T05:29:50+08:00

    Você pode alterar o agrupamento do banco de dados da instância e do sistema com a ação de reconstrução do banco de dados de configuração . Isso recriará os bancos de dados do sistema com o agrupamento especificado sem reinstalar os binários. Os bancos de dados do sistema após a reconstrução serão essencialmente uma nova instalação, portanto, quaisquer alterações nos objetos do sistema (logins, trabalhos etc.) serão perdidas.

    • 0

relate perguntas

  • Por que o agrupamento cp1256 não é de 1 byte no MySQL?

  • Quais são as diferenças entre utf8_general_ci e utf8_unicode_ci e agrupamento utf8_binary no MySQL?

  • Múltiplos conjuntos de caracteres e agrupamentos para um banco de dados multinacional

  • Valor padrão inválido para DateTime ao alterar para utf8_general_ci

  • Como posso extrair um char menor de SQL_Latin1_General_CP1_CI_AS?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve