前言
在操作數(shù)據(jù)庫的時候經(jīng)常會用到判斷數(shù)據(jù)表、視圖、函數(shù)/方法、存儲過程是否存在,若存在,則需要刪除后再重新創(chuàng)建。以下是MS SQL Server中的示例代碼。
數(shù)據(jù)表(Table)
創(chuàng)建數(shù)據(jù)表的時候判斷數(shù)據(jù)表是否存在,若存在則刪除,會經(jīng)常使用,特別是初始化的時候。
--方法一
/*判斷數(shù)據(jù)表是否存在,若存在則刪除數(shù)據(jù)表*/
IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Table_Name') DROP TABLE Table_Name;
GO
--創(chuàng)建數(shù)據(jù)表
CREATE TABLE Table_Name
(
Id INT PRIMARY KEY NOT NULL
)
--方法二
/*判斷數(shù)據(jù)表是否存在,若存在則刪除數(shù)據(jù)表*/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'Table_Name') DROP VIEW Table_Name;
GO
--創(chuàng)建數(shù)據(jù)表
CREATE TABLE Table_Name
(
Id INT PRIMARY KEY NOT NULL
)
視圖(View)
創(chuàng)建視圖的時候判斷視圖是否存在,若存在則刪除,會經(jīng)常使用,特別是視圖更改過后。
--方法一
/*判斷視圖是否存在,若存在則刪除視圖*/
IF EXISTS (SELECT * FROM sys.views WHERE name = 'View_Name') DROP VIEW View_Name
GO
--創(chuàng)建視圖
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
--創(chuàng)建視圖
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
--創(chuàng)建視圖
CREATE VIEW View_Name AS
SELECT SELECT * FROM table_name
GO
函數(shù)/方法(Function)
創(chuàng)建函數(shù)/方法的時候判斷函數(shù)/方法是否存在,若存在則刪除,會經(jīng)常使用,特別是函數(shù)/方法更改過后。
--方法一
/*判斷函數(shù)/方法是否存在,若存在則刪除函數(shù)/方法*/
IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Func_Name') DROP FUNCTION Func_Name;
GO
--創(chuàng)建存儲過程
CREATE FUNCTION Func_Name
(
@a INT
)
RETURN INT
AS
BEGIN
--coding
END
GO
--方法二
/*判斷函數(shù)/方法是否存在,若存在則刪除函數(shù)/方法*/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'Func_Name') DROP FUNCTION Func_Name;
GO
--創(chuàng)建函數(shù)/方法
CREATE FUNCTION Func_Name
(
@a INT
)
RETURN INT
AS
BEGIN
--coding
END
GO
存儲過程(Procedure)
創(chuàng)建存儲過程的時候判存儲過程是否存在,若存在則刪除,會經(jīng)常使用,特別是存儲過程更改過后。
--方法一
/*判斷存儲過程是否存在,若存在則刪除存儲過程*/
IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Proc_Name') DROP PROC Proc_Name;
GO
--創(chuàng)建存儲過程
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
--創(chuàng)建存儲過程
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
--創(chuàng)建存儲過程
CREATE PROC Proc_Name
AS SELECT * FROM Table_Name
GO
本文采用知識共享署名-相同方式共享 4.0 國際許可協(xié)議進行許可。
基于簡書上的作品創(chuàng)作。 可轉(zhuǎn)載、引用,但需經(jīng)本人同意后署名作者且注明文章出處,并以相同方式共享。
知識共享許可協(xié)議