SqlServer中使用临时表示例
发布:智码IT网 阅读:
实际工作中,通常会将一些查询结果作为表,再关联其他表查询,如
SELECT
*
FROM
(SELECT * FROM Person WHERE age > 18 AND sex = 0 ) AS tb1
WHERE
name LIKE '%张%'
这样做虽然能达到目的,但是缺点是结构不清晰,可阅读性不强,如果临时查询的内容逻辑相对复杂,代码量大的话,就很难阅读、修改和调试了,特别是阅读别人的代码的时候,体会会更为深刻。使用临时表就能很好的解决这样的问题。其具体优点如下:
1、临时表不是数据库里面的真实表,它在一个会话周期内有效,会话关闭后,临时表也就自动消失了;
2、临时表具有可阅读性强的特点,我们可以给临时表取一个有意义的名字,读代码的时候,就能够通过临时表的名称,大概知道这段查询的大概意思,而不用非得每次都去了解查询的具体逻辑;
3、便于调试。临时查询结果不方便独立查询,而临时表可以像真实表一样随时查询,这在调试排查错误的时候就显得很方便;
【用法示例】
-- 删除临时表tmpCourse
IF EXISTS ( SELECT * FROM tempdb.dbo.sysobjects WHERE id = object_id( N'tempdb..#tmpCourse' ) AND type = 'U' )
DROP TABLE #tmpCourse
-- 从Course查询记录,插入到临时表#tmpCourse
SELECT * INTO #tmpCourse FROM Course
-- 从临时表查询数据
SELECT * FROM #tmpCourse