Servidor SQL se existir tabela de solteira

Servidor SQL se existir tabela de solteira

Como você provavelmente já sabe, você não pode criar uma tabela em um banco de dados se uma tabela com um nome semelhante existir no banco de dados. Para superar isso, você pode verificar se a tabela se existe e, se verdadeira, solte a tabela e crie uma nova tabela.

Neste artigo, você aprenderá a usar operações condicionais do SQL. Discutiremos como verificar se existe uma tabela e, se for verdade, solte -a.

Requisitos

Testamos e implementamos os exemplos em uma instância do SQL Server neste guia. Se você deseja reproduzir um ambiente semelhante, certifique -se de ter:

  1. Microsoft SQL Server 2019
  2. SQL Server Management Studio 18
  3. Altere as permissões no seu banco de dados de destino

Depois de ter os requisitos especificados acima, podemos prosseguir com o tutorial.

Fundamentos

Antes de aprendermos a adicionar lógica condicional antes de soltar uma mesa, vamos ver o que acontece quando você tentar soltar uma tabela inexistente em um banco de dados.

Considere a consulta de exemplo abaixo:

Use salesdb;
Tabela de soltamento do dones_not_exist;

Se tentarmos executar a consulta acima, o SQL Server retornará um erro MSG 3701:

Lógica da condição - Método 1

O primeiro método que você pode usar quando precisar excluir uma tabela se existir é a queda se existe consulta. Esta consulta está disponível apenas na versão 2016 do SQL Server e superior.

A sintaxe é como:

Tabela de soltar [se existir] DB_NAME.schema_name.tbl_name;

A consulta verificará se a tabela existe e, se verdadeira, solte -a; Caso contrário, ignore a declaração de queda.

Por exemplo:

Use salesdb;
Soltar a mesa se existir funcionários;

Se a tabela existir, o SQL tentará abandoná -la.

Lembre -se de que as regras do SQL para soltar uma tabela ainda se aplicam, mesmo ao usar a queda se existe consulta.

Método 2 - ID do objeto

O segundo método é usar a função object_id (). A função retorna um ID de objeto se o nome especificado existir.

O código de exemplo abaixo mostra como usar a função object_id () para adicionar lógica condicional ao excluir uma tabela.

Use salesdb;
Se object_id (n'dbo.Funcionários ', n'u') não é nulo
Tabela de soltar [DBO].Funcionários;

Você pode aprender mais sobre a função object_id () no recurso abaixo:

SQL Server Object_Id () Função DOCS.

Método 3 - Esquema de informações

Também podemos usar o esquema de informações do servidor SQL para consultar se houver uma tabela. Um exemplo de consulta é como mostrado abaixo:

Use salesdb;
Se existe (
Selecione * de Information_schema.Tabelas onde tabela_name = 'funcionários' e tabela_schema = 'dbo')
Tabela de soltar [DBO].[Funcionários];

No exemplo acima, usamos o esquema de informações para verificar se existe uma tabela especificada.

Fechamento

Usando este guia, você descobriu várias maneiras de adicionar lógica condicional ao soltar uma tabela no SQL Server. A adição de declarações condicionais permite evitar erros em scripts SQL automatizados.