资讯专栏INFORMATION COLUMN

MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建

Wuv1Up / 2826人阅读

摘要:前言在操作数据库的时候经常会用到判断数据表视图函数方法存储过程是否存在,若存在,则需要删除后再重新创建。

前言

在操作数据库的时候经常会用到判断数据表、视图、函数/方法、存储过程是否存在,若存在,则需要删除后再重新创建。以下是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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32058.html

相关文章

  • 高性能MySQL读书笔记 (四)

    摘要:查询性能优化优化数据访问检查是否检索大量超过需要的数据是否访问太多行或太多列增加网络开销消耗和内存资源检查服务器层是否在分析大量超过需要的数据行重构查询的方式切分查询有时对于一个大查询我们需要分而治之切分成小查询每次只完成一部分分解关联查询 1. 查询性能优化 1.1 优化数据访问 检查是否检索大量超过需要的数据.是否访问太多行或太多列,增加网络开销,消耗cpu和内存资源 检查服务器...

    snowell 评论0 收藏0
  • 在线ER模型设计:可视化MySQL数据库建表操作

    摘要:让您在线创建流程图系统部署图软件架构图模型组织图软件流程图图表。使用创建数据库模型目前支持及基本的语句建表。后期会进行功能拓展以支持等等数据库模型建模,支持导入生成模型通过语句生成模型模型导出根据模型生成。 概述 ER模型使用可视化了实体存储的信息,以及直观的呈现了实体与实体的关系,在我们实际的应用系统开发过程中新建ER模型可以更好的理解业务模型,为以后的开发维护工作起到归纳总结的作用...

    james 评论0 收藏0
  • 客官,这里有一份《MySQL 必知必会》读书笔记,请您笑纳!

    摘要:主键唯一标识表中每行的这个列称为主键。不为空,每行数据必须具有一个主键值。主要负责与用户进行交互,接受用户的指令,然后发出请求给,负责数据访问和处理,然后将结果返回给。注意虽然似乎通配符可以匹配任何东西,但有一个例外,即。 为什么写这篇文章 因为我最近的一些工作内容跟数据分析比较密切,所以需要对SQL使用得比较熟练,所以便阅读了《MySQL 必知必会》这本书,为了检验自己的阅读效果及帮...

    liuyix 评论0 收藏0
  • 客官,这里有一份《MySQL 必知必会》读书笔记,请您笑纳!

    摘要:主键唯一标识表中每行的这个列称为主键。不为空,每行数据必须具有一个主键值。主要负责与用户进行交互,接受用户的指令,然后发出请求给,负责数据访问和处理,然后将结果返回给。注意虽然似乎通配符可以匹配任何东西,但有一个例外,即。 为什么写这篇文章 因为我最近的一些工作内容跟数据分析比较密切,所以需要对SQL使用得比较熟练,所以便阅读了《MySQL 必知必会》这本书,为了检验自己的阅读效果及帮...

    Neilyo 评论0 收藏0
  • 客官,这里有一份《MySQL 必知必会》读书笔记,请您笑纳!

    摘要:主键唯一标识表中每行的这个列称为主键。不为空,每行数据必须具有一个主键值。主要负责与用户进行交互,接受用户的指令,然后发出请求给,负责数据访问和处理,然后将结果返回给。注意虽然似乎通配符可以匹配任何东西,但有一个例外,即。 为什么写这篇文章 因为我最近的一些工作内容跟数据分析比较密切,所以需要对SQL使用得比较熟练,所以便阅读了《MySQL 必知必会》这本书,为了检验自己的阅读效果及帮...

    draveness 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<