关于if exists的用法及说明

目录
  • 1 判断数据库是否存在
  • 2 判断表是否存在
  • 3 判断存储过程是否存在
  • 4 判断临时表是否存在
  • 5 判断视图是否存在
  • 6 判断函数是否存在
  • 7 获取用户创建的对象信息
  • 8 判断列是否存在
  • 9 判断列是否自增列
  • 10 判断表中是否存在索引

1 判断数据库是否存在

if exists (select * from sys.databases where name = '数据库名')  
  drop database [数据库名]

2 判断表是否存在

if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)  
  drop table [表名]

3 判断存储过程是否存在

if exists (select * from sysobjects where id = object_id(N'[存储过程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)  
  drop procedure [存储过程名]

4 判断临时表是否存在

if object_id('tempdb..#临时表名') is not null    
  drop table #临时表名

5 判断视图是否存在

--SQL Server 2000   
IF EXISTS (SELECT * FROM sysviews WHERE object_id = '[dbo].[视图名]'  
--SQL Server 2005   
IF EXISTS (SELECT * FROM sys.views WHERE object_id = '[dbo].[视图名]'  --SQL Server 2000
IF EXISTS (SELECT * FROM sysviews WHERE object_id = '[dbo].[视图名]'
--SQL Server 2005
IF EXISTS (SELECT * FROM sys.views WHERE object_id = '[dbo].[视图名]'

6 判断函数是否存在

--  判断要创建的函数名是否存在    
  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF'))    
  drop function [dbo].[函数名]    --  判断要创建的函数名是否存在  

7 获取用户创建的对象信息

SELECT [name],[id],crdate FROM sysobjects where xtype='U'  
/*  
xtype 的表示参数类型,通常包括如下这些  
C = CHECK 约束  
D = 默认值或 DEFAULT 约束  
F = FOREIGN KEY 约束  
L = 日志  
FN = 标量函数  
IF = 内嵌表函数  
P = 存储过程  
PK = PRIMARY KEY 约束(类型是 K)  
RF = 复制筛选存储过程  
S = 系统表  
TF = 表函数  
TR = 触发器  
U = 用户表  
UQ = UNIQUE 约束(类型是 K)  
V = 视图  
X = 扩展存储过程*/

8 判断列是否存在

if exists(select * from syscolumns where id=object_id('表名') and name='列名')  
  alter table 表名 drop column 列名

9 判断列是否自增列

if columnproperty(object_id('table'),'col','IsIdentity')=1  
  print '自增列'  
else  
  print '不是自增列'  

10 判断表中是否存在索引

if exists(select * from sysindexes where id=object_id('表名') and name='索引名')    
  print  '存在'    
else    
  print  '不存在11 查看数据库中对象
SELECT * FROM sys.sysobjects WHERE name='对象名'

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • SQL语句中EXISTS的详细用法大全

    目录 前言 一.建表 二.在SELECT语句中使用EXISTS 1.在SQL中使用EXISTS 2.在SQL中使用NOT EXISTS 3.在SQL中使用多个NOT EXISTS 4.在SQL中使用多个EXISTS 5.在SQL中使用NOT EXISTS和EXISTS 三.在DELETE语句中使用EXISTS 1.在MySQL中使用 2.在Oracle中使用 四.在UPDATE语句中使用EXISTS 1.在MySQL中使用 2.在Oracle中使用 总结 前言 在业务开展中,会遇到类似需求. 需

  • SQL中exists的使用方法

    有一个查询如下: 复制代码 代码如下: SELECT c.CustomerId, CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID FROM Orders o WHERE o.CustomerID = cu.CustomerID) 这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢? E

  • mysql中EXISTS和IN的使用方法比较

    1.使用方式: (1)EXISTS用法 select a.batchName,a.projectId from ucsc_project_batch a where EXISTS (select b.id from ucsc_project b where a.projectId = b.id) 上面这条SQL的意思就是:以ucsc_project_batch为主表查询batchName与projectId字段,其中projectId字段存在于ucsc_project表中. EXISTS 会对外

  • SQL中Exists的用法

    比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID) 这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢? EX

  • mysql中关键词exists的用法实例详解

    目录 前言 语法解释 语法 说明 使用案例 环境准备 常用查询 exists与in的效率比较 循环嵌套查询执行原理 循环优化策略 exists和in查询原理的区别 结论 总结 前言 在日常开发中,用mysql进行查询的时候,有一个比较少见的关键词exists,我们今天来学习了解一下这个exists这个sql关键词的用法,这样在工作中遇到一些特定的业务场景就可以有更加多样化的解决方案 语法解释 语法 SELECT column1 FROM t1 WHERE [conditions] and EXI

  • sqlserver exists,not exists的用法

    学生表:create table student( id number(8) primary key, name varchar2(10),deptment number(8))选课表:create table select_course(  ID         NUMBER(8) primary key,  STUDENT_ID NUMBER(8) foreign key (COURSE_ID) references course(ID),  COURSE_ID  NUMBER(8) for

  • python 中os模块os.path.exists()的用法说明

    os即operating system(操作系统),Python 的 os 模块封装了常见的文件和目录操作. os.path模块主要用于文件的属性获取,exists是"存在"的意思,所以顾名思义,os.path.exists()就是判断括号里的文件是否存在的意思,括号内的可以是文件路径. 举个栗子: user.py为存在于当前目录的一个文件 输入代码: import os path = os.path.exists('user.py') print(path) 输出结果: True P

  • Spring Data JPA 关键字Exists的用法说明

    Spring Data JPA 关键字Exists 查询数据库中的此数据是否已存在: 例子: 查询sys_user表中的一个user是否存在,类SysUser对应的是数据库中的sys_user表,SysUserId是表sys_user的主键类(ID类). 如果查询一个user,user的accountNo为demo. userID为demo1,表sys_user的主键是accountNo和userID,下面代码中的方法是查询这个user是否存在,如果存在则返回true,不存在则返回false.

  • 关于if exists的用法及说明

    目录 1 判断数据库是否存在 2 判断表是否存在 3 判断存储过程是否存在 4 判断临时表是否存在 5 判断视图是否存在 6 判断函数是否存在 7 获取用户创建的对象信息 8 判断列是否存在 9 判断列是否自增列 10 判断表中是否存在索引 1 判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名')     drop database [数据库名] 2 判断表是否存在 if exists (select * fr

  • sql中exists的基本用法示例

    目录 [exists语句的执行顺序如下]: 附:exists与in比较 总结: 现有:班级表(A_CLASS) 学生表( STUDENT) 注:学生表(STUDENT)的classId关联班级表(A_CLASS)的主键ID 代码: select * from STUDENT s WHERE exists (select 1 from A_ClASS c where s.CLASS_ID=c.ID) 结果 [exists语句的执行顺序如下]: 1.首先会执行外循环(select * from st

  • Mysql动态更新数据库脚本的示例讲解

    具体的upgrade脚本如下: 动态删除索引 DROP PROCEDURE IF EXISTS UPGRADE; DELIMITER $$ CREATE PROCEDURE UPGRADE() BEGIN -- RESOURCE.AUDIO_ATTRIBUTE IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'RESOURCE' AND TABLE_NAME = 'AUDIO_ATTRIBUTE

  • Mysql exists用法小结

    简介 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False. EXISTS 指定一个子查询,检测行的存在.语法:EXISTS subquery.参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字).结果类型为 Boolean,如果子查询包含行,则返回 TRUE. 示例 一张活动配置主表activity_main,通过act_code来唯一标明一场活动,活动举办地点适配表acti

随机推荐