一般管理者所建立的资料表都是永久资料表,利用CREATE TABLE建立的永久资料表
然而,在实际开发中,可能需要将计算机结果先存放在一个地方,而资料量可能有上百笔或者更多,这个时候如果将这些资料放在永久资料表中可能会有如下的问题:
1. 多人执行程序时,永久资料会记录多人的资料,可能会产生资料的冲突;(例如如果甲和乙都在操作,数据库并不知道这笔资料是甲存的还是乙存的)
2. 永久资料表,会让一般的使用者,只要拥有数据库使用权限的人,就能够轻易的看到里面的资料,这样资料运算时暂时存放的隐秘性将会消失.
所以,如果有需要,可以考虑暂存性的资料表解决一些问题:
暂存资料跟永久资料表创时的区别很简单,只要在资料表名前加上:# 或者##
CREATE
TABLE
#tempTable1
(studentId int ,studentName varchar ( 20 ))
GO
(studentId int ,studentName varchar ( 20 ))
GO
除了#的暂存资料表外,SQLSERVER还有##的暂存资料表,称为广域的暂存资料表,这个资料表可以被线上的所有使用者都可以看到
CREATE
TABLE
##tempTable2
(studentId int ,studentName varchar ( 20 ))
GO
(studentId int ,studentName varchar ( 20 ))
GO
3.第三种方式: 资料表类型的变量
DECLARE @TABLE1 TABLE(orderId INT,customerId
char
(
10
))
INSERT @TABLE1 VALUES( 1 , ' AAA ' )
SELECT * FROM @TABLE1
INSERT @TABLE1 VALUES( 1 , ' AAA ' )
SELECT * FROM @TABLE1
根据SQLSERVER TEAM 的说法,对于大量的暂存资料采用暂存资料表,对于少量的,可以使用资料表变量;