1 系统表sys.sysobjects

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

2 OBJECTPROPERTY

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

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

  1. SELECT * FROM sys.sysobjects
  2. GO
  3. /*
  4. xtype 的表示参数类型,通常包括如下这些
  5. C = CHECK 约束
  6. D = 默认值或DEFAULT 约束
  7. F = FOREIGN KEY 约束
  8. L = 日志
  9. FN = 标量函数
  10. IF = 内嵌表函数
  11. P = 存储过程
  12. PK = PRIMARY KEY 约束(类型是 K)
  13. RF = 复制筛选存储过程
  14. S = 系统表
  15. TF = 表函数
  16. TR = 触发器
  17. U = 用户表
  18. UQ = UNIQUE 约束(类型是 K)
  19. V = 视图
  20. X = 扩展存储过程
  21. */--数据库
  22. IF exists( SELECT 1 from sys. sysdatabases where name = dbname)
  23. begin
  24. drop database dbname
  25. end
  26.  
  27. --表
  28. IF exists( SELECT 1 from sys. sysobjects where id = object_id (N'tbname') AND OBJECTPROPERTY (id, N'IsUserTable') = 1)
  29. BEGIN
  30. drop TABLE tbname
  31. END
  32.  
  33. --存储过程
  34. IF exists( SELECT 1 from sys. sysobjects where id = object_id(N'System_GetTableCreateSql' )
  35. AND OBJECTPROPERTY (id, N'IsProcedure') = 1)
  36. BEGIN
  37. drop PROC System_GetTableCreateSql
  38. END
  39.  
  40. --函数
  41. IF exists (SELECT 1 from sys.sysobjects where id = object_id('procname' ))
  42. BEGIN
  43. drop Function procname
  44. END
  45.  
  46. --视图
  47. IF exists( SELECT 1 from sys. views where object_id = object_id(N'viewname' ))
  48. BEGIN
  49. drop VIEW viewname
  50. END
  51.  
  52. --列
  53. IF exists( SELECT 1 from syscolumns where id =object_id( 'tbname') and name='columnName' )
  54. BEGIN
  55. alter table tbname drop column columnName
  56. END
  57.  
  58. --索引
  59. IF exists( SELECT 1 from sys. sysindexes where id= object_id('tbname' ) and name='indexName' )
  60. BEGIN
  61. drop INDEX indexName ON tbname
  62. END

t-sql判断数据库对象是否存在的更多相关文章

  1. 查询Sql Server数据库对象结构

    查询Sql Server数据库对象结构 查询数据库 查询架构 查询表 查询列 查询存储过程 查询视图 1.查询某一服务器下所有数据库 select t.[name] as 数据库 from sys.d ...

  2. SQL Server IF Exists 判断数据库对象是否存在的用法

    1 判断数据库是否存在Sql代码 if exists (select * from sys.databases where name = ’数据库名’)    drop database [数据库名] ...

  3. SQL Server 数据库对象命名参考

    一. 引言 编码规范是一个优秀程序员的必备素质,然而,有很多人非常注重程序中变量.方法.类的命名,却忽视了同样重要的数据库对象命名.这篇文章结合许多技术文章和资料,以及我自己的开发经验,对数据库对象的 ...

  4. 基于Python的SQL Server数据库对象同步轻量级实现

    缘由 日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器.类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话就可以,但会存在相当一部分反复的手工操作.建源的 ...

  5. SQL 判断数据库是否有相关表 字段

    --判断数据库是否有相关表 if exists (select 1 from sysobjects where id = object_id(' 表名 ') and type = ' U ' ); - ...

  6. Sql Server数据库对象访问权限控制

    以下内容主要针对database层面的数据访问权限(比如select, insert, update, delete, execute…) 1.直接给user权限GRANT EXECUTE TO [u ...

  7. sql 判断 数据库 表 字段 是否存在

    select * From master.dbo.sysdatabases where name='数据库名'select * from sysobjects where id = object_id ...

  8. Sql中判断“数据库"、"表"、"临时表"、"存储过程"和列”是否存在

    --判断数据库是否存在   IF EXISTS (SELECT * FROM MASTER..sysdatabases WHERE NAME = ''库名'')      PRINT ''exists ...

  9. SQL Server数据库存在判断语句及系统表简介 转

    Transact-SQL Exists Sentences--判断数据库是否存在IF EXISTS(SELECT * FROM master.sysdatabases WHERE name=N'库名' ...

随机推荐

  1. PowerShell-将CSV导入SQL Server

    $database = 'foxdeploy' $server = '.' $table = 'dbo.powershell_test' Import-CSV .\yourcsv.csv | ForE ...

  2. C#自动切换Windows窗口程序,如何才能调出主窗口?

      namespace AutoChangeWindow { partial class Form1 { /// <summary> /// 必需的设计器变量. /// </summ ...

  3. javascript中keyCode与charCode属性

    好记性不如烂笔头啊,最近总是忘记这两个属性的区别.想了想,从别人博客上转一遍过来吧,时常看下 键盘事件拥有两个属性,keyCode和CharCode,他们之间有一些不一样之处.keyCode表示用户按 ...

  4. ios 使用gcd 显示倒计时

    __block ;//倒计时时间 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ...

  5. 链表的艺术——Linux内核链表分析

    引言: 链表是数据结构中的重要成员之中的一个.因为其结构简单且动态插入.删除节点用时少的长处,链表在开发中的应用场景许多.仅次于数组(越简单应用越广). 可是.正如其长处一样,链表的缺点也是显而易见的 ...

  6. sqlplus登入和plsql登入的差别

    以下是两种登入方式的截图.用sqlplus登入须要输入主机字: 假设是用本机的SQL*Plus连接本机的数据库.则"主机字符串"能够为空. 假设是从远程连接xp的oracle数据库 ...

  7. call_user_func — 把第一个参数作为回调函数调用

    call_user_func — 把第一个参数作为回调函数调用 说明 mixed call_user_func ( callable $callback [, mixed $parameter [, ...

  8. [译]GLUT教程 - 整合代码3

    Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> The Code So Far III 这里我们准备包含一 ...

  9. 交换两个变量的值不使用第三个变量(Java)

    关于这个问题网上有好多答案,最近有人说这是个奇葩问题 个人测试了一把,如果是普通的数字的话,基本上没有问题 public static void main(String[] args) { int a ...

  10. Unable to resolve address &#39; &#39; service &#39; &#39;: Name or service not known

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免.欢迎指正. 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...