USP_DROPSPEC

Drop a spec from catalog and sql

Parameters

Parameter Parameter Type Mode Description
@OBJNAME varchar(100) IN

Definition

Copy


create procedure dbo.USP_DROPSPEC(
    @OBJNAME varchar(100)
)
as
begin

    -- PLEASE COMPLEMENT IF THE TYPE YOU NEED IS NOT YET SUPPORTED HERE --


    set @OBJNAME = replace(replace(replace(@OBJNAME, 'dbo.', ''), '[', ''), ']', '')        --trim up


    -- now dumbly try every catalog to locate it

    if exists(select 1 from dbo.SQLFUNCTIONCATALOG where FUNCTIONNAME = @OBJNAME)
    begin
        delete from dbo.SQLFUNCTIONCATALOG where FUNCTIONNAME = @OBJNAME
        IF  EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(@OBJNAME))
            exec ('DROP FUNCTION ' + @OBJNAME);
    end
    else if exists(select 1 from dbo.DATALISTCATALOG where PROCEDURENAME = @OBJNAME)
    begin
        delete from dbo.DATALISTCATALOG where PROCEDURENAME = @OBJNAME
        IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(@OBJNAME))
            exec ('DROP PROCEDURE ' + @OBJNAME);
    end

    --else if exists(some_other_catalog), huh?


    else
    begin
        print('Cannot find: ' + @OBJNAME + '!')
    end
end