• 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
  • 相关阅读:
    Linux常用命令-学习笔记
    Linux 输入输出重定向
    Linux 网卡配置参数
    JS Promise对象学习
    Linux用户身份与文件权限学习笔记
    4、点击事件
    3、自定义按压效果
    2、自定义背景形状
    1、文字大小,颜色
    5、跑马灯
  • 原文地址:https://www.cnblogs.com/xqhppt/p/3826900.html
Copyright © 2020-2023  润新知