MS SQL Server中數據表、視圖、函數/方法、存儲過程是否存在判斷及創建

前言

在操作數據庫的時候經常會用到判斷數據表、視圖、函數/方法、存儲過程是否存在,若存在,則需要刪除後再重新創建。以下是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
發佈了51 篇原創文章 · 獲贊 2 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章