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
  • 相关阅读:
    剑指 Offer 55
    剑指 Offer 55
    剑指 Offer 22. 链表中倒数第k个节点
    剑指 Offer 29. 顺时针打印矩阵
    剑指 Offer 17. 打印从1到最大的n位数
    剑指 Offer 57
    剑指 Offer 59
    B. Han Solo and Lazer Gun 暴力 水
    C. Number of Ways 思维
    C. Destroying Array 并查集/线段树 Intel Code Challenge Elimination Round (Div. 1 + Div. 2, combined)
  • 原文地址:https://www.cnblogs.com/xqhppt/p/3826900.html
Copyright © 2011-2022 走看看