Existenz von SQL Objekten überprüfen

Um stabile Release-Skripte schreiben zu können, ist es sinnvoll vor dem Anlegen von Objekten zum Beispiel zu prüfen um dieses nicht aus einem früheren Release-Lauf noch vorhanden ist. Denn in dem Fall würde ein CREATE natürlich fehlschlagen. Wir haben in diesem Artikel verschiedene Check-Skripte für unterschiedliche Datenbank-Objekt-Typen zusammengetragen.

Funktion

Das nachfolgende Snippet löscht eine Funktion, falls sie besteht:

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[fYourFunction]') AND type IN ( N'FN', N'IF', N'TF', N'FS', N'FT' ))
     DROP FUNCTION [dbo].[fYourFunction]
GO

Tabelle

Das nachfolgende Snippet löscht eine Tabelle, falls sie besteht:

if exists (select * from sysobjects where object_id = OBJECT_ID(N'[dbo].[tYourTable]') and xtype='U')
    drop table [YourSchema].[tYourTable]
GO

Stored Procedure

Das nachfolgende Snippet löscht eine gespeicherte Prozudure, falls sie besteht:

IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'spYourProcedure')
    drop procedure [YourSchema].[spYourProcedure]
GO

View

Das nachfolgende Snippet löscht eine View, falls sie besteht:

IF EXISTS(select * FROM sys.views where name = 'vYourView')
    drop view [YourSchema].[vYourView]
GO

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.