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 / 177253
Accepted
Neil P
Neil P
Asked: 2017-06-27 03:23:17 +0800 CST2017-06-27 03:23:17 +0800 CST 2017-06-27 03:23:17 +0800 CST

Como adicionar uma restrição de verificação no data warehouse do sql Azure?

  • 772

Gostaria de adicionar uma restrição de verificação a uma tabela no azure data warehouse .

Tenho o script abaixo:

alter table [FactTbl_Test] add constraint Ck_Test_id check ([Test_Id] != 'Unknown')

Isso causa o erro abaixo:

Erro de análise na linha: 2, coluna: 74: Sintaxe incorreta perto de 'verificar'.

Editar:

Também parece falhar com o mesmo erro se a restrição for criada dentro da declaração da tabela.

azure-sql-data-warehouse
  • 3 3 respostas
  • 3726 Views

3 respostas

  • Voted
  1. Best Answer
    SQLmojoe
    2017-06-27T08:54:02+08:002017-06-27T08:54:02+08:00

    Isso e as restrições em geral não têm suporte no Azure SQL Data Warehouse. Consulte https://learn.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-overview#unsupported-table-features para obter uma lista completa.

    Se a restrição não for imposta na origem ou se houver várias origens, você poderá implementar durante o processo ETL ou ELT. Para conjuntos de dados pequenos, o ETL provavelmente funcionaria melhor. Com grandes conjuntos de dados, é provável que você obtenha melhor desempenho via ELT-L. Como em extrair e carregar em uma tabela temporária (o heap é rápido), execute a verificação/limpeza e carregue na tabela final.

    • 7
  2. ypercubeᵀᴹ
    2017-06-27T08:52:57+08:002017-06-27T08:52:57+08:00

    A documentação da CREATE TABLEsintaxe do Azure SQL Data Warehouse não menciona CHECKrestrições, nem qualquer outro tipo de restrição, exceto NOT NULLe DEFAULTrestrições.

    Presumo que CHECKas restrições não são suportadas neste produto.

    Artigo de conversa simples: Levando o Azure SQL Data Warehouse para um Test-Drive por Robert Sheldon, diz claramente:

    Trabalhando com tabelas

    Ao trabalhar com a versão do SQL Data Warehouse de uma instrução T-SQL, você geralmente descobrirá que a sintaxe é semelhante à forma como a instrução é implementada no SQL Server ou no Banco de Dados SQL. No entanto, a versão do SQL Data Warehouse de uma instrução geralmente não é tão extensa e às vezes oferece suporte a opções específicas do SQL Data Warehouse, como vimos com a CREATE DATABASEinstrução.

    O mesmo pode ser dito da CREATE TABLEafirmação . Ele não suporta muitas opções disponíveis para SQL Server ou Banco de Dados SQL, e há algumas opções específicas para SQL Data Warehouse. Por exemplo, a instrução não oferece suporte a chaves primárias, chaves estrangeiras, restrições de verificação , restrições exclusivas, índices exclusivos, colunas computadas, colunas esparsas, tipos de dados definidos pelo usuário, exibições indexadas, identidades, sequências, gatilhos ou sinônimos. A instrução também não oferece suporte a determinados tipos de dados, como geometria, geografia, hierárquico e assim por diante. Ao mesmo tempo, a CREATE TABLEinstrução fornece opções de tabela exclusivas do SQL Data Warehouse ou tratadas de forma diferente do T-SQL padrão.

    • 3
  3. coyote
    2017-06-27T04:55:05+08:002017-06-27T04:55:05+08:00

    Eu recriei este teste usando uma tabela vazia e não encontrei esse erro. Para fins de confirmação, sugiro formatar a declaração como tal:

    ALTER TABLE [FactTbl_Test]
    ADD CONSTRAINT Ck_Test_id CHECK ([Test_Id] != 'Unknown');
    

    Informe-nos se encontrar o mesmo erro e certifique-se de que apenas esta instrução seja executada em seu lote.

    Embora seja improvável o problema aqui, lembre-se de que se [FactTbl_Test]já contiver um [Test_Id]valor de 'Unknown', o ADD CONSTRAINTfalhará. Você pode usar a opção WITH NOCHECKapós o nome da tabela, que criará a restrição sem validá-la em relação aos dados existentes.

    • 0

relate perguntas

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