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、判断索引是否存在

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

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

  1.  
    IF exists(SELECT * FROM sysobjects WHERE id=object_id(N'[master].[存储过程名称]') and xtype='P')
  2.  
    begin
  3.  
    drop procedure [master].[存储过程名称]
  4.  
    End
  5.  
    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

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

  1. SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则.sql

    SELECT DISTINCT       TOP 100 PERCENT isnull(p.name,'') AS 父对象, o.xtype,       CASE o.xtype WHEN 'C' ...

  2. sqlserver 删除表 视图 函数 存储过程

    use tax_ceshiselect 'DROP TABLE '+name from sysobjects where type = 'U'union select 'DROP VIEW '+nam ...

  3. sqlserver 各种判断是否存在(表名、函数、存储过程等)

    库是否存在 if exists(select * from master..sysdatabases where name=N'库名') print 'exists'elseprint 'not ex ...

  4. SqlServer判断数据库、表、字段、存储过程、函数是否存在

    原文:SqlServer判断数据库.表.字段.存储过程.函数是否存在 判断数据库是否存在 if exists (select * from sys.databases where name = '数据 ...

  5. Bat脚本备份sqlserver 表结构、存储过程、函数、指定表数据

    Bat脚本备份sqlserver 表结构.存储过程.指定表数据: @echo off cd /d %~dp0 ::备份表结构.存储过程和部分配置表的数据 set LogFile=report.log ...

  6. Sqlserver中判断表是否存在

    在sqlserver(应该说在目前所有数据库产品)中创建一个资源如表,视图,存储过程中都要判断与创建的资源是否已经存在  在sqlserver中一般可通过查询sys.objects系统表来得知结果,不 ...

  7. flask 在视图函数中验证表单

    在视图函数中验证表单 因为现在的basic_form视图同时接受两种类型的请求:GET请求和POST请求.所以我们要根据请求方法的不同执行不同的代码.具体来说,首先是实例化表单,如果是GET请求,就渲 ...

  8. 【SQL server基础】判断数据库、表格、视图、存储过程、函数书否存在

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

  9. sql 判断 表 视图 存储过程 存在 然后 删除

    sql 判断 函数 存储过程是否存在的方法 (2010-12-03 10:08:57) 转载▼     下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函 ...

  10. web应用/路由控制/视图函数/单表多表操作

    一. 1.wen应用:BS架构的应用程序,B是浏览器,S:server(实现了wsgi协议)+ application https://www.cnblogs.com/liuqingzheng/art ...

随机推荐

  1. redis学习笔记(详细)——高级篇

    redis学习笔记(详细)--初级篇 redis学习笔记(详细)--高级篇 redis配置文件介绍 linux环境下配置大于编程 redis 的配置文件位于 Redis 安装目录下,文件名为 redi ...

  2. jenkins项目发布

    目录 一.简介 二.docker打包 一.后端打包 二.前端打包 三.启动容器 四.完整代码 五.发布测试 六.优化方案 七.源码地址: 八.参考 一.简介 1.该章节基于jenkins.Harbor ...

  3. elasticsearch中query_string的隐藏坑

    elasticsearch查询中使用filter查询添加query_string格式为: {                    "query_string": {       ...

  4. storm启动报错: InvalidTopologyException(msg:Component: [mybolt] subscribes from non-existent stream: [default] of component [es-bolt])

    storm每一个bolt在emit之后需要把数据传递到下一个bolt,所以declareOUtputFields 一定要写 默认的情况下不用加streamId,如果加了streamId,后面的bolt ...

  5. pycharm 在flask断点不停止

    For me disabling Gevent compatible option in Preferences > Build, Execution, Deployment has helpe ...

  6. 暑假算法练习Day4

    已经坚持第四天啦,Fighting!!! 1008 数组元素循环右移问题 (20 分) 一个数组\(A\)中存有\(N\)\((>0)\)个整数,在不允许使用另外数组的前提下,将每个整数循环向右 ...

  7. 基于Netty实现自定义消息通信协议(协议设计及解析应用实战)

    所谓的协议,是由语法.语义.时序这三个要素组成的一种规范,通信双方按照该协议规范来实现网络数据传输,这样通信双方才能实现数据正常通信和解析. 由于不同的中间件在功能方面有一定差异,所以其实应该是没有一 ...

  8. Java String 转成 二位数组

    ... package str; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; impo ...

  9. Prometheus的监控解决方案(含监控kubernetes)

    prometheus的简介和安装 Prometheus(普罗米修斯)是一个开源系统监控和警报工具,最初是在SoundCloud建立的.自2012年成立以来,许多公司和组织都采用了普罗米修斯,该项目拥有 ...

  10. 【Java】运行时Java对象在内存中是如何存储的?

    翻译自这一篇文章 我们知道函数在内存中实现为一个活动记录的栈.我们也知道Java方法在JVM栈区中实现为一个帧栈而Java对象是在堆区进行分配的. Java对象在堆内存中是怎样的呢?一旦对象保存在内存 ...