• 【转】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
  • 相关阅读:
    用Html+Js实现的“自动补全”功能
    利用js为table添加行
    Flex 当鼠标悬停在DataGrid某行上时用datatoolField显示当前行
    Flex中设置编译器参数
    Linux2 在Linux(CentOS)上配置SSH免登陆
    线程笔记
    I/O
    网络编程
    Linux基础
    进程间的通信
  • 原文地址:https://www.cnblogs.com/minideas/p/2797235.html
Copyright © 2020-2023  润新知