sql两种创建临时表 验证存在于删除

来源:互联网 发布:黑暗之魂3男号捏脸数据 编辑:程序博客网 时间:2024/06/08 06:17

--创建、删除临时表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
--第一种方式
createtable #tmp(namevarchar(255),idint)
 
--第二种方式
selectcount(id)asstoryNum ,
sum(convert(numeric(10,2),casewhen isnumeric(code)=1 thencode else0 end))ascodeNum,
sum((casewhen isnumeric(realcode)=1 thenconvert(numeric(10,2),realcode)else0.0 end))asrealcodeNum,
tdtname,cycle,jiracomponent,jirastatename,qualityvalue,storycodellt
into#tmp fromIKNOW_STORY_U2000V1R7C00 groupby tdtname,cycle,jiracomponent,jirastatename,qualityvalue,storycodellt
 
--查询临时表
select* from#tmp
 
--删除临时表
if object_id('tempdb..#tmp')isnot null
    begin
        droptable #tmp
    end

SQL Server临时表的正确删除方式

删除SQL Server临时表和一般表并不相同,下面将为您为别示例错误和正确的删除操作,供您参考,希望对您能够有所帮助。

临时表与一般的表不同,它是保存到tempDb表中。临时表的表名与你所建的表名也不一样,因为他要为不同人的相同操作创建不同的临时表。

1、错误的删除操作:

?
1
2
3
4
5
6
7
8
9
10
--错误的临时表删除操作,因为所在数据库不同
IF EXISTS (SELECT* FROMsysobjects WHEREobject_id = OBJECT_ID(N'[dbo].[#tempTable]')ANDtype in(N'U'))
 Begin
 DROPTABLE [dbo].[tempTable]
End
 --错误的临时表删除操作,因为临时表名已变
if exists (select* fromtempdb.dbo.sysobjects whereid = object_id(N'[#temptable]'))
Begin
 droptable #temptable
End

2、正确的删除方式:

?
1
2
3
4
--正确的临时表删除操作
if object_id('tempdb..#tempTable')isnot null Begin
 droptable #tempTable
End

sql 判断临时表是否存在,删除临时表重建 

?
1
2
3
4
IF Object_id('Tempdb..#dl')ISNOT NULL 
DROPTABLE #dl --如果有存在就删除临时表
CREATETABLE #dl (neirong char(20),icountint, dlzonjine int, dlshu int, dlyin int)--重建临时表
INSERTINTO #dl SELECT* FROMtab1 --把物理表的数据插到临时表
原创粉丝点击