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