zoukankan      html  css  js  c++  java
  • t-sql判断数据库对象是否存在

    1 系统表sys.sysobjects

    在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行,详细介绍参考MSDN

    2 OBJECTPROPERTY

    返回当前数据库中架构范围内的对象的有关信息,MSDN介绍

    3 判断数据库、表、视图、存储过程、索引、列是否存在语句

    SELECT * FROM sys.sysobjects
    GO
    /* 
          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 = 扩展存储过程
    */--数据库
    IF exists( SELECT 1 from sys. sysdatabases where name = dbname)
    begin
           drop database dbname
    end
    
    --
    IF exists( SELECT 1 from sys. sysobjects where id = object_id (N'tbname') AND OBJECTPROPERTY (id, N'IsUserTable') = 1)
    BEGIN
           drop TABLE tbname
    END
    
    --存储过程  
    IF exists( SELECT 1 from sys. sysobjects where id = object_id(N'System_GetTableCreateSql' )
           AND OBJECTPROPERTY (id, N'IsProcedure') = 1)
    BEGIN
           drop PROC System_GetTableCreateSql
    END
    
    --函数
    IF exists (SELECT 1 from sys.sysobjects where id = object_id('procname' ))
    BEGIN
       drop Function procname
    END
    
    --视图
    IF exists( SELECT 1 from sys. views where object_id = object_id(N'viewname' ))
    BEGIN
       drop VIEW viewname
    END
    
    --
    IF exists( SELECT 1 from syscolumns where id =object_id( 'tbname') and name='columnName' )
    BEGIN 
       alter table tbname drop column columnName
    END
    
    --索引
    IF exists( SELECT 1 from sys. sysindexes where id= object_id('tbname' ) and name='indexName' )
    BEGIN
           drop INDEX indexName ON tbname
    END
  • 相关阅读:
    python3与Excel的完美结合
    Python3连接MySQL
    Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密
    Jmeter 接口测试之MD5加密函数(函数助手篇)
    ubuntu16.04安装python3
    解释Crypto模块怎么就这么"皮"?No module named "Crypto"
    python3 django 安装
    未授权访问的缺陷原理的一种可能性
    一篇RPO漏洞挖掘文章翻译加深理解。
    漏洞挖掘技巧之利用javascript:
  • 原文地址:https://www.cnblogs.com/xqhppt/p/3826900.html
Copyright © 2011-2022 走看看