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