当前位置:首页 > SQL数据库 > 正文内容

sqlserver 各种判断是否存在(表、视图、函数、存储过程等)

Conbio2年前 (2022-10-31)SQL数据库2970

1、判断表是否存在

select * from sysobjects where id = object_id(表名) and OBJECTPROPERTY(id, N'IsUserTable') = 1

2、判断视图是否存在

select table_name from information_schema.views where table_name = 视图名

或者

SELECT * FROM dbo.sysobjects WHERE id = object_id('视图名') AND OBJECTPROPERTY(id, N'IsView') = 1

3、判断函数是否存在

select * from sysobjects where xtype='fn' and name='函数名'

或者

select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') 
and xtype in (N'FN', N'IF', N'TF')

4、判断字段是否存在

select 1 from syscolumns where id=object_id('表名') and name='字段名'

5、判断索引是否存在

if not exists(select * from sysindexes where id=object_id('表名') and name='索引名')
create nonclustered index [索引名] on [表名](字段 asc,字段 asc)
go

6、判断存储过程是否存在

IF exists(SELECT * FROM sysobjects WHERE id=object_id(N'[master].[存储过程名称]') and xtype='P')
begin
drop procedure [master].[存储过程名称]
End
GO
 
 

-- SQL SERVER 判断是否存在某个触发器、储存过程

-- 判断储存过程,如果存在则删除
IF (EXISTS(SELECT * FROM sysobjects WHERE name='procedurename' AND type='P'))
DROP PROCEDURE procedurename

-- 判断触发器,如果存在则删除
IF (EXISTS(SELECT * FROM sysobjects WHERE id=object_id(N'[dbo].[triggername]') AND OBJECTPROPERTY(id, N'IsTrigger') = 1))
DROP TRIGGER triggername

-- 判断用户函数是否存在,如果存在则删除
-- 此处type有两种: 'TF'- Table-Value Function 表值函数 'FN'- Scalar-Value Function 标量值函数
IF (EXISTS(SELECT * FROM sysobjects WHERE id=object_id(N'[dbo].[userfunction]') AND (type='FN' OR type='TF')))
DROP FUNCTION userfunction

-- 判断视图是否存在,存在则删除
IF (EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME=N'viewname'))
DROP VIEW viewname

-- 判断用户表 是否存在,若存在则删除
IF (EXISTS(SELECT * FROM sysobjects WHERE id=N'tablename' AND OBJECTPROPERTY(id, N'IsUserTable')=1))
DROP TABLE tablename

-- 判断数据库,如果存在则删除
IF (EXISTS(SELECT * FROM master.dbo.sysdatabases WHERE dbid=db_ID('dbname')))
DROP DATABASE dbname


-- 如果提示:删除数据库时提示数据库正在被使用,无法删除(Cannot drop database databasename because it is currently in use),使用:

IF (EXISTS(SELECT * FROM master.dbo.sysdatabases WHERE dbid=db_ID('dbname')))

BEGIN

  USE master
  ALTER DATABASE dbname
  SET single_user
  WITH ROLLBACK IMMEDIATE
  DROP DATABASE dbname

END


扫描二维码推送至手机访问。

版权声明:本文由ZKCOPS发布,如需转载请注明出处。

本文链接:http://0.iiil.top/?id=24

分享给朋友:

“sqlserver 各种判断是否存在(表、视图、函数、存储过程等)” 的相关文章

好久没有更新了!VM安装Linux - kali

好久没有更新了!VM安装Linux - kali

VMware安装kali(详细版)_樱岩诗的博客-CSDN博客...

每个人都有自己的出场机会!

每个人都有自己的出场机会!

每个人都有自己的出场机会...

做个网页简历

做个网页简历

一,网页服务器搭建我的效果 http://jianli.zaojiamao.cn/下面是视频讲解,不懂的可以看视频1.购买服务器:http://xiaogoucloud.xyz/2.管理服务器:finalshell.exe【服务器管理软件】 📎finalshell_windows...

快递柜网页(FileCodeBox)-匿名口令分享文本,文件,像拿快递一样取文件

快递柜网页(FileCodeBox)-匿名口令分享文本,文件,像拿快递一样取文件

本期为大家带来超简单的一键安装文件快递柜(FileCodeBox)的方法,跟着视频操作基本都能搭建成功哦,适合零基础小白没有任何难度!如果遇到问题也可以随时评论或者私聊UP网站预览效果:https://share.lanol.cn一,简单安装教程1.购买服务器,随便网上的商家都可以买。我用的是小狗云...

自带宝塔面板的安装和使用

自带宝塔面板的安装和使用

小狗云,性价比最高的云服务:https://xiaogoucloud.xyz/很多小伙伴不会装宝塔系统,其实我们服务器有自带的宝塔面板奥。购买服务器后,点击重装系统后选择图中类似带宝塔系统类型重装系统后直接就能看进入宝塔面板啦宝塔网址:ip:8888进入网页后直接设置管理密码即可ftp账号添加网站添...

树莓派烧录及登录

树莓派烧录及登录

一,烧录树莓派1.1下载本地镜像:1.1.1在官网可以下载,但是相对比较慢https://www.raspberrypi.com/software/operating-systems/1.1.2有条件的可以通过百度网盘进行下载https://pan.baidu.com/s/1wgEK434unC-L...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。