当前位置:  数据库>sqlserver

SQL server 2005 判断表是否存在的方法详解

    来源: 互联网  发布时间:2014-08-29

    本文导语:  本节内容: SQL server 2005 判断表是否存在   新建立一个表:(#表示临时表)   代码示例: CREATE TABLE #d1(item INT) 建立后可以在系统数据库中的tempdb看到这张临时表   下面判断   代码示例: IF(SELECT OBJECT_ID('#d1')) IS NULL    PRINT '...

本节内容:
SQL server 2005 判断表是否存在
 
新建立一个表:(#表示临时表)
 

代码示例:
CREATE TABLE #d1(item INT)

建立后可以在系统数据库中的tempdb看到这张临时表
 
下面判断
 

代码示例:

IF(SELECT OBJECT_ID('#d1')) IS NULL

   PRINT '#d1 not exists.'
ELSE
   PRINT '#d1 exists'
 

输出 #d1 not exists.

错误原因:
当前数据库不是tempdb,而是其他的数据库,所以不存在

解决方法:
 

代码示例:
IF(SELECT OBJECT_ID('tempdb.dbo.#d1')) IS NULL
    PRINT '#d1 not exists.'
ELSE
   PRINT '#d1 exists'
 

来看下表:sysobjects:
 

代码示例:
 select * from sysobjects ;

会显示很多内容,包括建立的表;
因此,还可以从sysobjects中name列判断是否有你想要的表;
 

代码示例:
select * from yourdb.dbo.sysobjects where name='tablename'

当然,需要判断语句,next
 

代码示例:
IF EXISTS(SELECT * FROM sysobjects WHERE name='#d1')
  PRINT 'table exists'
 ELSE
  PRINT 'not exists'

这里在sysobjects并没有加上数据库限定(即 yourdb.dbo.sysobjects),因而输出结果还是 not exists,这里是由于当前数据库不是tempdb;

综合应用两者:
 

代码示例:
if exists (select * from tempdb.dbo.sysobjects where id = object_id('tempdb.dbo.#d1'))

条件判断之后,就可以动态建立表了,加上:
drop table 和 create table 这样的语句即可。


    
 
 

您可能感兴趣的文章:

  • sql 版本详解 让你认识跟sql2000的区别
  • sql语言中delete删除命令语句详解
  • 探讨:sql插入空,默认1900-01-01 00:00:00.000的解决方法详解
  • sql server日期相减 的实现详解
  • 使用SQL Server判断文件是否存在后再删除(详解)
  • 深入SQL Server中定长char(n)与变长varchar(n)的区别详解
  • sql server定义联合主键的方法详解
  • Sql Server使用cursor处理重复数据过程详解
  • 深入SQL截取字符串(substring与patindex)的详解
  • SQL Server UPDATE语句的用法详解
  • 深入SQL SERVER合并相关操作Union,Except,Intersect的详解
  • 深入sql多表差异化联合查询的问题详解
  • oracle SQL递归的使用详解
  • SQL Server正则表达式 替换函数应用详解
  • 基于SQL中SET与SELECT赋值的区别详解
  • 在sql server代理中配置邮件会话的方法详解
  • sql2005中创建CLR存储过程的方法详解
  • SQL实现递归及存储过程中In()参数传递解决方案详解
  • 深入sql server 2005 万能分页存储过程的详解
  • sql存储过程详解
  • shell中关于sql查询结果的判断?
  • ResultSet rs = stmt.executeQuery(sql),如果该sql的结果是没有符合的记录,那么rs此时是什么东东?是null吗?如果不是,如何判断是空resultset?
  • oracle用什么SQL语句判断表存不存在
  • 如何判断一条sql(update,delete)语句是否执行成功
  • Oracle判断指定列是否全部为数字的sql语句
  • DataModule中如何执行SQL,判断数据是否存在??小弟是新人
  • 判断表TextTable中是否存在列IsUpdate的sql语句
  • SQL SERVER如何判断某个字段包含大写字母
  • sql server日期相减 的实现详解 iis7站长之家
  • sql2005 数据表存在与否及删除的判断语句
  • SQL 判断字段类型语句
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SQL Server"错误 21002: [SQL-DMO]用户 * 已经存在问题解决
  • import Java.sql.*; 报错包 Java.sql 不存在?请帮帮我!
  • sql语句如何查找access中某表是否存在?
  • MySql获取某个字段存在于哪个表的sql语句
  • sql server不存在 sql server拒绝访问第1/3页
  • mysql 存在该记录则更新,不存在则插入记录的sql
  • sql server判断临时表是否存在的方法分享
  • SQL 比较一个集合是否在另一个集合里存在的方法分享
  • SQL判断字段列是否存在的方法
  • sql server判断数据库、表、列、视图是否存在
  • Sql添加删除字段,判断字段是否存在的方法示例
  • Sql Server 判断表或数据库是否存在的实例详解
  • SQL Server误区30日谈 第26天 SQL Server中存在真正的“事务嵌套”
  • SQL Server 不存在或访问被拒绝(转)
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口rowid的类成员方法: tostring定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: getwhereclause定义及介绍
  • 如何处理此错误:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
  • java命名空间java.sql接口statement的类成员方法: execute定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3