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 / 1166
Accepted
Sean Kearon
Sean Kearon
Asked: 2011-02-11 12:29:00 +0800 CST2011-02-11 12:29:00 +0800 CST 2011-02-11 12:29:00 +0800 CST

Há problema em colocar pontos nos nomes de banco de dados do SQL Server?

  • 772

Se eu usar um nome de banco de dados com um ponto no SQL Server (2005 ou 2008), algo como "MyApp.Sales", isso causará algum problema?

sql-server
  • 7 7 respostas
  • 48492 Views

7 respostas

  • Voted
  1. Best Answer
    Eric Humphrey - lotsahelp
    2011-02-11T12:46:40+08:002011-02-11T12:46:40+08:00

    Você pode , mas eu não faria. Você sempre teria que envolver o nome do banco de dados com colchetes, como [MyApp.Sales].

    Então, para recapitular: se você valoriza sua sanidade, não faça isso.

    • 69
  2. Marek Grzenkowicz
    2011-02-12T00:00:18+08:002011-02-12T00:00:18+08:00

    Eu acho que é uma péssima ideia , mesmo que tecnicamente possível.

    Ao longo dos anos, descobri que muitas pessoas têm dificuldade em entender a convenção de nomenclatura de quatro partes, embora pareça bastante óbvio:

    server_name.database_name.schema_name.object_name
    

    Imagine o que acontecerá se eles virem algo assim:

    MAIN-SQL.[MyApp.Sales].hr.CompetitorsProducts
    

    ou:

    [MAIN-SQL\EXPRESS].[MyApp.Sales].sch_HR.[Products From.Our-Competitors]
    

    Manter as coisas simples é importante.

    • 39
  3. aKzenT
    2013-03-22T08:52:40+08:002013-03-22T08:52:40+08:00

    Caso alguém encontre essa pergunta...

    Tenha em mente que não é apenas uma má ideia porque os usuários podem ficar confusos, mas também porque algumas ferramentas podem ficar confusas.

    Até a própria Microsoft tem problemas com isso. Se você tentar conectar seu banco de dados a uma planilha do Excel usando o Microsoft Query (via ODBC), obterá um assistente de configuração que permite escolher o banco de dados ao qual deseja se conectar. No entanto, escolher um banco de dados que contenha um ponto produzirá um erro informando que o servidor não pôde ser encontrado. Parece que o assistente não verifica se os valores precisam escapar e concatena cegamente os identificadores.

    É claro que existem soluções alternativas, mas você economiza alguns problemas não fazendo isso desde o início.

    • 17
  4. Daniel
    2015-02-26T07:03:16+08:002015-02-26T07:03:16+08:00

    Não use ponto em nomes de banco de dados, nomes de publicação, nomes de usuário. E eu recomendo fortemente nunca usar um ponto no nome (coluna, tabela, visão, banco de dados, etc).

    Atualização: posso confirmar que o traço de menos "-" causa problemas semelhantes.

    Aqui está o que acontece:

    O SQL Server usa scripts para uso interno, como procedimentos armazenados do sistema. Como já mencionado aqui, os comandos que você usa às vezes forçam você a colocar o nome entre colchetes e isso (sério, microsoft?) não (sempre) é bom para o uso de procedimentos armazenados .

    Na verdade, não sou mais capaz de limpar as informações de abonnement porque o procedimento armazenado itera por todos os bancos de dados e não escapa dos nomes dos bancos de dados corretamente. Esta iteração é tão complexa que não consegui corrigi-la em mais de 8 SPs.

    Além disso, não consigo usar MMC ou scripts para editar conflitos de replicação . Se você tiver um (Um!) banco de dados que tenha um ponto dentro do nome, esses problemas ocorrerão em todos os bancos de dados, em todas as publicações.

    Estas são as ocorrências que tenho. Ações SQL complexas são processadas em linguagem sql e funcionarão bem, se a base estiver bem.

    Se você tentar conectar seu banco de dados a uma planilha do Excel usando o Microsoft Query (via ODBC), obterá um assistente de configuração que permite escolher o banco de dados ao qual deseja se conectar. - aKzenT

    Esses erros podem ser encontrados com mais frequência em software de terceiros, portanto, nunca use pontos em todos os nomes de qualquer coisa no servidor sql.

    • 11
  5. user48235
    2014-09-27T06:38:22+08:002014-09-27T06:38:22+08:00

    Existem muitos caracteres permitidos em nomes, mas a convenção e o bom senso limitam o uso de caracteres especiais. '_' (sublinhado) é o separador mais seguro comprovado e mantém a facilidade de leitura.

    • 10
  6. Ozzie
    2017-06-21T23:55:23+08:002017-06-21T23:55:23+08:00

    Mesmo negócio: o nome da chave estrangeira não deve conter nenhum ponto.

    Descobri que, se você precisar renomear esse nome, precisará de colchetes para sp_renamefuncionar (porque ao renomear uma chave estrangeira, você precisa especificar o esquema).

    Exemplo:

    sp_rename '[MySchema].[MyFKName.With.Dots]' 'NewFKName' 'OBJECT'
    

    Se você esquecer os colchetes, receberá um erro: 15225

    • 3
  7. Mark
    2014-05-30T01:11:29+08:002014-05-30T01:11:29+08:00

    Um de nossos fornecedores optou por introduzir o nome do esquema: [System.Activities.DurableInstancing]. Nossa ferramenta de carregamento de dados quebrou, então agora temos mais desenvolvimento para lidar com sua estranheza. Apenas não faça isso. Use um '-'.

    • -1

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

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

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

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

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

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 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
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +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
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +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