前言 在操作資料庫的時候經常會用到判斷數據表、視圖、函數/方法、存儲過程是否存在,若存在,則需要刪除後再重新創建。以下是MS SQL Server中的示例代碼。 數據表(Table) 創建數據表的時候判斷數據表是否存在,若存在則刪除,會經常使用,特別是初始化的時候。 視圖(View) 創建視圖的時候 ...
前言
在操作資料庫的時候經常會用到判斷數據表、視圖、函數/方法、存儲過程是否存在,若存在,則需要刪除後再重新創建。以下是MS SQL Server中的示例代碼。
數據表(Table)
創建數據表的時候判斷數據表是否存在,若存在則刪除,會經常使用,特別是初始化的時候。
--方法一
/*判斷數據表是否存在,若存在則刪除數據表*/
IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Table_Name') DROP TABLE Table_Name;
GO
--創建數據表
CREATE TABLE Table_Name
(
Id INT PRIMARY KEY NOT NULL
)
--方法二
/*判斷數據表是否存在,若存在則刪除數據表*/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'Table_Name') DROP VIEW Table_Name;
GO
--創建數據表
CREATE TABLE Table_Name
(
Id INT PRIMARY KEY NOT NULL
)
視圖(View)
創建視圖的時候判斷視圖是否存在,若存在則刪除,會經常使用,特別是視圖更改過後。
--方法一
/*判斷視圖是否存在,若存在則刪除視圖*/
IF EXISTS (SELECT * FROM sys.views WHERE name = 'View_Name') DROP VIEW View_Name
GO
--創建視圖
CREATE VIEW View_Name AS
SELECT SELECT * FROM table_name
GO
--方法二
/*判斷視圖是否存在,若存在則刪除視圖*/
IF EXISTS (SELECT * FROM sys.objects WHERE name = 'View_Name') DROP VIEW View_Name;
GO
--創建視圖
CREATE VIEW View_Name AS
SELECT SELECT * FROM table_name
GO
--方法三
/*判斷視圖是否存在,若存在則刪除視圖*/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'View_Name') DROP VIEW View_Name;
GO
--創建視圖
CREATE VIEW View_Name AS
SELECT SELECT * FROM table_name
GO
函數/方法(Function)
創建函數/方法的時候判斷函數/方法是否存在,若存在則刪除,會經常使用,特別是函數/方法更改過後。
--方法一
/*判斷函數/方法是否存在,若存在則刪除函數/方法*/
IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Func_Name') DROP FUNCTION Func_Name;
GO
--創建存儲過程
CREATE FUNCTION Func_Name
(
@a INT
)
RETURN INT
AS
BEGIN
--coding
END
GO
--方法二
/*判斷函數/方法是否存在,若存在則刪除函數/方法*/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'Func_Name') DROP FUNCTION Func_Name;
GO
--創建函數/方法
CREATE FUNCTION Func_Name
(
@a INT
)
RETURN INT
AS
BEGIN
--coding
END
GO
存儲過程(Procedure)
創建存儲過程的時候判存儲過程是否存在,若存在則刪除,會經常使用,特別是存儲過程更改過後。
--方法一
/*判斷存儲過程是否存在,若存在則刪除存儲過程*/
IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Proc_Name') DROP PROC Proc_Name;
GO
--創建存儲過程
CREATE PROC Proc_Name
AS SELECT * FROM Table_Name
GO
--方法二
/*判斷存儲過程是否存在,若存在則刪除存儲過程*/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'Proc_Name') DROP PROC Proc_Name;
GO
--創建存儲過程
CREATE PROC Proc_Name
AS SELECT * FROM Table_Name
GO
--方法三
/*判斷存儲過程是否存在,若存在則刪除存儲過程*/
IF EXISTS (OBJECT_NAME('Proc_Name','P') IS NOT NULL DROP PROC Proc_Name;
GO
--創建存儲過程
CREATE PROC Proc_Name
AS SELECT * FROM Table_Name
GO