sql临时表使用select into与insert语句注意事项

发布时间:2020-03-30编辑:脚本学堂
在sql数据库临时表中,使用select into与insert语句复制与插入数据,需要注意什么,可以参考下本文的内容。

sql server临时表有两种,本地临时表和全局临时表,本地临时表用#来表示,如#test,本地临时表在创建后会改变名称,会在原有的#test名字基础上加上一些字符数字,如果在存储过程里,创建#test后,在查询#test,就会报错找不到这个表。

全局临时表用##来表示,如##test2,全局临时表创建后名字不会改变,使用##test2就可以查询到。

在使用临时表时,经常会用到select * into ##test2这样的语句,select into语句会自动创建临时表##test2,并把查询到的数据写入##test2中。

问题,当多次使用select into,想往同一个临时表里插入数据的时候就会报错,提示##test2已经存在,这是因为在你第二次使用select into时,它还会去创建##test2,但##test2在第一次已经创建了,所以就有问题。

可以通过insert into语句来解决。

第一次时,可以用select * into ##test2来创建临时表,后面用insert into ##test2 select *来继续插入数据,insert into不会去创建表。