1. 程式人生 > >SQL SERVER 刪除前先判斷指定的表或者儲存過程是否存在

SQL SERVER 刪除前先判斷指定的表或者儲存過程是否存在

1、建立儲存過程:

CREATE PROCEDURE proc_pr  ---將create修改成alter可以修改儲存過程;
AS
BEGIN
  IF EXISTS(SELECT * FROM sysobjects WHERE TYPE='U' AND NAME='te')
  BEGIN
     PRINT '存在要刪除的表te';
     DROP TABLE te;
     PRINT '已經刪除表te';
  END
  ELSE
     PRINT '不存在表te';

  IF EXISTS(SELECT * FROM sysobjects WHERE TYPE='P'
AND NAME='proc_jc') BEGIN PRINT '存在要刪除的儲存過程proc_jc'; DROP PROCEDURE proc_jc; PRINT '已經刪除儲存過程proc_jc'; END ELSE PRINT '不存在儲存過程proc_jc'; END

2、執行儲存過程:

EXEC proc_pr;

3、檢視儲存過程proc_pr是否存在:

SELECT * FROM sysobjects WHERE TYPE='P' and name='proc_pr';

4、儲存表te是否存在:

SELECT
* FROM sysobjects WHERE TYPE='U' and name='te';

5、刪除儲存過程;

DROP PROCEDURE proc_pr;