`
zealotds
  • 浏览: 122010 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

判断连接型临时表是否存在的问题

SQL 
阅读更多
1.获取表的id
object_id(N'dbname.dbo.tablename')


2.判断属性
OBJECTPROPERTY(id, N'IsTable')


3. 合起来写
IF  EXISTS (select id
    from dbo.sysobjects WHERE id=object_id(N'dbo.tablename') 
        and OBJECTPROPERTY(id,n'IsTable')=1
)
...


问题:
对于#表怎么处理?
可以使用object_id获取id但却不存在于sysobjects中

刚刚看到了一个国外的帖子:
如果object_id(N'tempdb.dbo.#tablename')不为空,那表当然就存在了,不用再判断属性类型。(因为#型变量只有table这一种类型?)

另外还有一点补充:
如果连接表是在proc内部建立的,当proc执行完成后该表会自动删除


分享到:
评论

相关推荐

    通过优化存储过程实现多表连查的效率.

    6. 使用`EXISTS`替代`SELECT COUNT(1)`来判断记录是否存在,且`COUNT(1)`比`COUNT(*)`更高效。 7. 优先使用`>=`而非`>`,以减少不必要的比较。 8. 考虑使用`UNION ALL`代替`UNION`,以减少去重操作。 9. 数据类型...

    SP優化的一些措施

    - 使用EXISTS代替SELECT COUNT(1)来判断记录是否存在,COUNT(1)比COUNT(*)更高效。 - 使用">="而非">"。 - 注意OR子句与UNION子句的替换。 - 注意连接操作中的数据类型匹配,避免不同类型之间的连接。 - 注意...

    Oracle存储过程编写经验和优化措施

    6. 使用`EXISTS`代替`SELECT COUNT(1)`来判断记录是否存在,以提高效率。 7. 尽可能使用“>=”而非“>”操作符。 8. 注意`OR`子句与`UNION`子句的替代使用,选择更优的查询方式。 9. 数据类型匹配是关键,避免不同...

    存储过程编写经验和优化措施

    - **连接操作**:谨慎处理大型临时表与其他大表的连接查询和修改,以减轻tempdb系统表的负担。 以上这些最佳实践和技巧可以帮助开发人员编写更高效、更易于维护的存储过程,从而提升整个数据库系统的性能。在实践...

    SQL Server存储过程编写和优化措施

    f) **大表连接和修改**:慎用大型临时表与其他大表的连接查询和修改,以减轻tempdb的系统表负担。 6. **算法选择**: 结合SQL优化技术,参照ASE Tuning手册,对比多种算法,选择资源消耗最少、效率最高的方法。...

    SQL语句大全

    - **判断数据库、表、存储过程、临时表、视图、函数存在性**:通过查询系统信息视图(如`sysdatabases`, `sysobjects`等)来确定对象是否存在。 - **获取创建信息**:获取对象的创建信息,例如表的创建脚本,可...

    MySQL DBA互联网大厂面试宝典500题

    12. 连接管理:连接器中不需要判断连接是长连接还是短连接,因为连接建立成功后就是连接,断开就是断开。 MySQL DBA互联网大厂面试宝典500题涵盖了MySQL DBA的方方面面,为开发者和DBA提供了宝贵的知识和经验。

    sybase的存储过程编写经验和方法

    6. 使用`EXISTS`代替`SELECT COUNT(1)`来判断记录是否存在,`COUNT(1)`比`COUNT(*)`更高效。 7. 尽可能使用`>=`而非`>`,以减少计算。 8. 考虑`OR`子句和`UNION`子句的替代方案,以优化查询性能。 9. 确保表间连接的...

    oracle经验技巧

    临时表是一种特殊的表,只在当前会话或事务中存在。它们在数据密集型处理任务中特别有用,因为它们不占用永久表空间,且可以在事务提交后自动清理。文件中提到了两种临时表的行为模式: - `ON COMMIT PRESERVE ROWS`...

    MySQL监视器监视数据库动态

    通过监控磁盘读写速度,我们可以判断是否存在存储设备性能问题,或者是否需要调整日志文件、数据文件的存储位置。此外,通过分析索引使用情况,可以发现无用或重复的索引,进而提高查询效率。 MySQL监视器还提供了...

    数据库管理与应用-1期 经验技巧.pdf

    - **使用 EXISTS 替代 COUNT**:使用 `EXISTS` 来判断是否存在记录通常比 `COUNT` 更高效。 - **使用 “>=” 替代 “>”**:可以减少索引查找范围。 - **OR 和 UNION 替换**:注意 OR 子句和 UNION 子句之间的...

    数据库判断题答案.docx

    tempdb 数据库保存所有的临时表和临时关系。数据文件是存放数据和数据库对象的文件,一个数据库可以有多个数据文件。 master 数据库记录 SQL Server 系统的所有系统信息。空值不同于空字符串或数值零,通常表示未...

    易语言 茶凉专用模块

    子程序 窗口是否当前, 逻辑型, 公开, 判断指定窗口是否为当前窗口(为当前接收按键消息的窗口返回真,否则返回假) .参数 进程名, 文本型, 可空, 欲判断窗口的程序进程名(注意区分大小写) .参数 窗口类名, 文本型, 可空...

    存储过程编写经验和优化措施.doc

    - **使用`EXISTS`代替`COUNT`**: 为了判断记录是否存在,推荐使用`EXISTS`,因为它通常比`COUNT`更高效。 - **使用`>=`而非`>`**: 使用`>=`可以更好地利用索引。 - **OR子句与UNION子句的替换**: 在某些情况下,...

    计算机SQL数据库语句.pdf

    8. **删除临时表**: `DROP TABLE`命令用于删除不再需要的临时表,临时表通常用于存储中间结果。 9-10. **创建数据表**: 有两种方法:一是使用SQL软件的代码生成功能,二是手动编写SQL代码,如`CREATE TABLE AS ...

Global site tag (gtag.js) - Google Analytics