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

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

前言

在操作数据库的时候经常会用到判断数据表、视图、函数/方法、存储过程是否存在,若存在,则需要删除后再重新创建。以下是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
sqlserver 视图使用必知必会基础指南--学生案例01   用学生表,st,和成绩表 score 进行创建视图查询  --相对标准创建视图语法 --01 先判断有没有视图,再创建 --if加1个判断,如果存在相同的视图,就删除,重新创建. if exists (select * from sys.views where name='View_st2') drop view View_st2 go create view View_st2 as select a.stno,stname,cno,yuwenchengji from st a... 阅读详情

相关推荐

Sql Server判断存储过程是否存在

1、判断存储过程是否存在存在就删除,并重新创建

qq_38928605的博客 1112

SQLServer进行判断存储过程、触发器、函数是否存在的语句

在平时工作中,我遇到sqlserver版本支持的语句有区别,因为有的时候回使用mysql,mysql 判断语句比较简单,而已可以使用到sqlserver的2016的版本,比如: mysql一个判断存储过程的语句: DROP PROCEDURE IF EXISTS procedure_test; 该语句可以同样适用于sqlserver的2016版本,但是将语句运行在sqlserver的2014版本就...

fushideng5027的博客 3941

SQL查询表是否存在的两种方法

SQL学习之查询技巧 查询表是否存在的两种方法方法判断系统对象是否存在 DECLARE @DbTableFileName VARCHAR(100) SET @DbTableFileName = 'tx' IF objectproperty(object_id(@DbTableFileName),'IsUserTable') IS NOT NULL PRINT 'E...

bangpie20080219的博客 429

SqlServer判断(数据库,表,视图,存储过程等)是否存在

---------------------------------------------------------------- 判断数据库是否存在 if exists(select * from master..sysdatabases where name=N'库名') print 'exists' else print 'not exists' -------

934

MS SQL Server partition by 函数实战二 编排考场人员

假设有若干已分配准考证号的考生,准考证号示例(01010001)共计8位,前4位为分类号,后4位为分类下的总排序号。现提供考场分配信息EXCEL文件(包括考场编号 、考场名称、考场容纳人数等),希望根据准考证号升序,将考生分配于对应的考场中,并生成对应的座位号(也即每一个考场的排序号),即分配原则为准考证号越小,考场号和座位号越靠前。本文将介绍利用partition by 、c# 来实现这一需求

初九之潜龙勿用 4512

MS SQL Server数据库原理

MS SQL Server数据库原理 一、 数据库基本概念 数据库系统(DBS):采用数据库技术的计算机系统,由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)和软件平台(软件)五部分构成的运行实体。 数据库管理系统:位于用户与操作之间的一层数据管理软件。 关系数据库:支持关系模型的数据库。关系模型有数据结构(二维表)、关系操作集合(关系代数、关系演算、二者结合特点...

qq_43707810的博客 3516

判断数据中对象是否存在

(理论) 【sys.databases】 它是SQL Server中的一个视图,它的位置参看图中所示。MicrosoftSQL Server实例中每个数据库都对应其中的一行。具体该视图中每个字段的含义,参看MSDN:https://msdn.microsoft.com/zh-cn/library/ms178534.aspx 【sysobjects】 它也是SQL Serve

不忘初心 1892

SQL Server】系统目录视图与系统兼容性视图

系统目录视图与系统兼容性视图 SQL Server 早期版本中的许多系统表现在都作为一组视图实现。 这些视图称为兼容性视图,仅用于向后兼容。 兼容性视图公开的元数据在 SQL Server 2000 (8.x) 中也提供。 但是,兼容性视图公开与在 SQL Server 2005 (9.x) 及更高版本中引入的功能有关的任何元数据。 因此,当您使用新功能(例如 Service Broker 或分区)时,必须切换到使用目录视图。 升级到目录视图的另一个原因是,存储用户 ID 和类型 ID 的兼容性视图列可能

Do_GH的博客 851

SQL Server 系统视图深度应用:批量检索含关键字的存储过程数据表字段

本文介绍了两种SQL Server数据库对象检索脚本,帮助开发人员快速定位包含特定业务关键字的数据库对象。第一段脚本通过sys.all_objects和sys.sql_modules系统视图,查找存储过程中包含指定关键字的对象及其定义语句;第二段脚本利用syscolumns和sysobjects视图(或新版sys.columns和sys.tables),检索用户表中字段名包含关键字的表结构信息。两段脚本都包含详细解析和扩展用法,能有效提升数据库运维效率,特别适用于存储过程和表结构的批量检索需求。

qq_72560062的博客 446
上一篇: .NET设计模式(2):1.2 抽象工厂模式(Abstract Factory)
下一篇: Windows下80端口被pid为4的System进程占用解决方法
seayxu
博客等级 码龄10年 15粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值