zoukankan      html  css  js  c++  java
  • SQL SERVER中查询某个表或某个索引是否存在

    查询某个表是否存在:

    在实际应用中可能需要删除某个表,在删除之前最好先判断一下此表是否存在,以防止返回错误信息。在SQL SERVER中可通过以下语句实现:
    IF OBJECT_ID(N'表名称', N'U') IS NOT NULL 
    DROP TABLE 表名称;
    注意,普通表和临时表的使用差别:
    若希望删除TEST库中的dbo.TestTable表,直接将dbo.TestTable作为表名即可。
    若希望删除临时表dbo.#temp_table,需要以tempdb.dbo.#temp_table作为表名。
    查询表上的某个索引是否存在:
    通常情况下,为了提高数据的查询效率,我们会为表的特定字段创建索引,同一个表上的索引名称是不同的。那么如何判断某个表是否已经存在特定名称的索引了呢?可通过下面的语句判断:
    SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(@tname, N'U') and NAME=@iname
    其中:@tname表示建索引的表名,@iname表示索引名。
    扩展知识
    在每一个数据库中都有sys.sysobjects用于包括在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)。详细的说明信息参看MSDN上的帮助文档:sys.sysobjects
    OBJECT_ID的作用是返回架构范围内对象的数据库对象标识号。如果找不到数据库或对象的名称,例如相应名称不存在或拼写不正确,则会返回NULL。详细的说明信息参看MSDN上的帮助文档:object_id
    sys.indexes用于保存每个表格对象(例如,表、视图或表值函数)的索引或堆,详细的说明信息参看MSDN上的帮助文档:sys.indexes
  • 相关阅读:
    仿苹果菜单的效果
    不用系统自带的复选框,单选按钮,选择框的样式,该怎么做
    js面向对象(三)---组件开发
    JS面向对象(二)---继承
    js面向对象(一)---基本的概念、属性、方法
    移动端新建html页面
    《程序员思维修炼》读后摘录
    做一个简单的贪吃蛇游戏
    做一个简单的遮罩层
    在不同设备上控制元素
  • 原文地址:https://www.cnblogs.com/accumulater/p/6144697.html
Copyright © 2011-2022 走看看