Check IF EXISTS Table, User Defined Function or Stored Procedure
Quando si crea uno statement di CREATE o di ALTER per una TABLE, per UDF (User Defined Function) oppure per una SP (Stored Procedure) è bene controllare prima se esiste o meno, e prendere provvedimenti in base all’esistenza o meno.
Ecco gli snipper rispettivamente per una TABLE, UDF e per una SP:
--CHECK DELL'ESISTENZA DI UNA TABELLA IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MY_TABLE]') AND type in (N'U')) BEGIN PRINT 'LA TABELLA NON ESISTE' END ELSE BEGIN PRINT 'LA TABELLA ESISTE' END --CHECK DELL'ESISTENZA DI UNA USERD DEFINED FUNCTION IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MY_UDF]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN PRINT 'LA USER DEFINED FUNCTION NON ESISTE' END ELSE BEGIN PRINT 'LA USER DEFINED FUNCTION ESISTE' END --CHECK DELL'ESISTENZA DI UNA STORED PROCEDURE IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MY_SPO]') AND type in (N'P', N'PC')) BEGIN PRINT 'LA STORED PROCEDURE NON ESISTE' END ELSE BEGIN PRINT 'LA STORED PROCEDURE ESISTE' END
In sostanza quello che cambia è il TYPE definito nella sys.objects
Lascia un commento