Generalmente cuando empezamos con un script, particularmente cuando queremos hacer una demo, lo que hacemos es chequear si los objectos existen para luego borrarlos y finalmente crearlos nuevamente
-- Casos
tipicos
IF OBJECT_ID('[dbo].[MiTabla]', 'U') IS NOT NULL
DROP TABLE [dbo].[MiTabla];
-- Otra
opción
IF EXISTS (SELECT * FROM sys.procedures WHERE
name = 'SP_DBA_MyStoreProc')
DROP PROCEDURE SP_DBA_MyStoreProc
Ahora con SQL Server 2016 podemos hacer lo siguiente
DROP TABLE IF EXISTS [dbo].[MiTabla];
DROP PROCEDURE IF EXISTS
[SP_DBA_MyStoreProc];
La parte interesante es que si el objecto no existe no mostrará ningún mensaje de error
Seguramente lo van a empezar a utilizar a la brevedad porque es un constructor muy útil
El mismo constructor esta disponible para otros objectos
- AGGREGATE
- PROCEDURE
- TABLE
- ASSEMBLY
- ROLE
- TRIGGER
- VIEW
- RULE
- DATABASE
- SCHEMA_USER
- DEFAULT
- SECURITY POLICY
- FUNCTION
- SEQUENCE
- INDEX
- TYPE
- SYNONYM
También se puede utilizar para columnas y/o contraints
ALTER TABLE [dbo].[MiTabla] DROP CONSTRAINT IF EXISTS MT_column_pk;
ALTER TABLE [dbo].[MiTabla] DROP COLUMN IF EXISTS ID;
No comments:
Post a Comment