SQL Server判斷數據庫、表、存儲過程、函數是否存在

--1.判斷數據庫是否存在  
IF EXISTS (  
       SELECT *  
       FROM   sys.databases  
       WHERE  NAME = '[數據庫名]'  
   )  
    DROP DATABASE [數據庫名]  
  
--2.判斷表是否存在  
IF EXISTS (  
       SELECT *  
       FROM   sysobjects  
       WHERE  id = OBJECT_ID(N'[表名]')  
              AND OBJECTPROPERTY(id, N'IsUserTable') = 1  
   )  
    DROP TABLE [表名]  
  
--3.判斷存儲過程是否存在  
IF EXISTS (  
       SELECT *  
       FROM   sysobjects  
       WHERE  id = OBJECT_ID(N'[存儲過程名]')  
              AND OBJECTPROPERTY(id, N'IsProcedure') = 1  
   )  
    DROP PROCEDURE [存儲過程名]  
  
--4.判斷函數是否存在  
IF OBJECT_ID(N'函數名') IS NOT NULL  
    DROP FUNCTION dnt_split  
  
---5.判斷數據庫是否開啓了全文搜索  
SELECT DATABASEPROPERTY('數據庫名', 'isfulltextenabled')  
  
--6.判斷全文目錄是否存在  
SELECT *  
FROM   sysfulltextcatalogs  
WHERE  NAME = '全文目錄名稱'  
  
--7.判斷要建立臨時表是否存在  
IF OBJECT_ID('臨時表') IS NOT NULL  
BEGIN  
    PRINT '存在'  
END  
ELSE  
BEGIN  
    PRINT '不存在'  
END  
  
-- 8.判斷要建立的視圖名是否存在  
IF EXISTS (  
       SELECT *  
       FROM   dbo.sysobjects  
       WHERE  id = OBJECT_ID(N'[dbo].[視圖名]')  
              AND OBJECTPROPERTY(id, N'IsView') = 1  
   )  
    DROP VIEW [dbo].[視圖名]  
 --9.判斷table1中是否存在name字段        
IF EXISTS(  
       SELECT *  
       FROM   syscolumns  
       WHERE  id = OBJECT_ID('table1')  
              AND NAME = 'name'  
   )  
BEGIN  
    SELECT *  
    FROM   table1;  
END       
   
--10.判斷table1中是否存在name字段且刪除字段     
IF EXISTS(  
       SELECT *  
       FROM   syscolumns  
       WHERE  id = OBJECT_ID('table1')  
              AND NAME = 'name'  
   )  
BEGIN  
    SELECT *  
    FROM   table1;   
    ALTER TABLE table1 DROP COLUMN NAME  
END
相關文章
相關標籤/搜索