Borrar una tabla solo si esta existe, en SQL-Server

El caso que vamos a tratar es el siguiente. Estamos creando un script para SQL-Server y queremos que si existe una tabla esta se borre. ¿Cómo lo hacemos? Dependiendo de la versión de nuestro SGBD lo haremos de una forma u otra:

SQL-Server anterior a la versión 2016:

Si trabajamos con una versión de SQL-Server anterior a 2016 (yo normalmente trabajo con SQL-Server 2008 R2 en la mayoría de los clientes de mi empresa) la sintaxis más correcta sería la siguiente:

IF OBJECT_ID('dbo.TablaQueQueremosBorrar', 'U') IS NOT NULL 
  DROP TABLE dbo.TablaQueQueremosBorrar; 

Como puedes ver, comprobamos si existe el nombre de la tabla a borrar y si la consulta devuelve algo distinto de NULL ejecutamos el borrado.

De SQL-Server 2016 en adelante:

Para SQL-Server 2016 se simplificó este paso con una nueva instrucción, que podríamos resumir como DIE (Drop If Exists)

DROP TABLE IF EXISTS dbo.TablaQueQueremosBorrar


Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.