閱讀145 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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  
 
 

最後更新:2017-04-03 18:52:12

  上一篇:go 第十一章 Hibernate的查詢 HQL麵向對象的查詢語言
  下一篇:go 第十一章 Hibernate的查詢 Query by Criteria(QBC)