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

前言

在操做數據庫的時候常常會用到判斷數據表、視圖、函數/方法、存儲過程是否存在,若存在,則須要刪除後再從新建立。如下是MS SQL Server中的示例代碼。sql

數據表(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)

建立函數/方法的時候判斷函數/方法是否存在,若存在則刪除,會常用,特別是函數/方法更改事後。code

--方法一
/*判斷函數/方法是否存在,若存在則刪除函數/方法*/
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)

建立存儲過程的時候判存儲過程是否存在,若存在則刪除,會常用,特別是存儲過程更改事後。io

--方法一
/*判斷存儲過程是否存在,若存在則刪除存儲過程*/
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
相關文章
相關標籤/搜索