SQL Server si existe la tabla de caída

SQL Server si existe la tabla de caída

Como probablemente ya sepa, no puede crear una tabla en una base de datos si existe una tabla con un nombre similar en la base de datos. Para superar esto, puede verificar si la tabla si existe, y si es cierto, suelte la tabla y cree una nueva tabla.

En este artículo, aprenderá cómo usar operaciones condicionales SQL. Discutiremos cómo verificar si existe una tabla y, si es cierto, soltarla.

Requisitos

Hemos probado e implementado los ejemplos en una instancia de SQL Server en esta guía. Si desea reproducir un entorno similar, asegúrese de tener:

  1. Microsoft SQL Server 2019
  2. SQL Server Management Studio 18
  3. Alterar permisos en su base de datos de destino

Una vez que tenga los requisitos especificados anteriormente, podemos continuar con el tutorial.

Lo esencial

Antes de aprender a agregar lógica condicional antes de soltar una mesa, veamos qué sucede cuando intente soltar una tabla inexistente en una base de datos.

Considere la consulta de ejemplo a continuación:

Usar salesDB;
Table de caída does_not_exist;

Si intentamos ejecutar la consulta anterior, SQL Server devolverá un error MSG 3701:

Lógica de condición - Método 1

El primer método que puede usar cuando necesite eliminar una tabla si existe es la caída si existe consulta. Esta consulta solo está disponible en SQL Server Versión 2016 y superior.

La sintaxis es como:

Tabla de caída [si existe] db_name.schema_name.tbl_name;

La consulta verificará si la tabla existe y, si es cierto, soltarlo; De lo contrario, ignore la declaración de caída.

Por ejemplo:

Usar salesDB;
Drop de la mesa si existe empleados;

Si la tabla existe, SQL intentará dejarla caer.

Recuerde que las reglas de SQL para soltar una tabla aún se aplican, incluso cuando se usa la caída si existe la consulta.

Método 2 - ID de objeto

El segundo método es usar la función object_id (). La función devuelve una ID de objeto si existe el nombre especificado.

El código de ejemplo a continuación muestra cómo usar la función Object_id () para agregar lógica condicional al eliminar una tabla.

Usar salesDB;
Si Object_id (n'dbo.Empleados ', n'u') no es nulo
Table de caída [DBO].Empleados;

Puede obtener más información sobre la función Object_id () en el recurso a continuación:

SQL Server Object_id () Función Docs.

Método 3 - Esquema de información

También podemos usar el esquema de información del servidor SQL para consultar si existe una tabla. Una consulta de ejemplo es como se muestra a continuación:

Usar salesDB;
Si existe (
Seleccionar * de Information_Schema.Tablas donde table_name = 'empleados' y table_schema = 'dbo')
Table de caída [DBO].[Empleados];

En el ejemplo anterior, usamos el esquema de información para verificar si existe una tabla especificada.

Clausura

Usando esta guía, descubrió varias formas de agregar lógica condicional al dejar caer una tabla en SQL Server. Agregar declaraciones condicionales le permite prevenir errores en los scripts SQL automatizados.