我搜索了但在SQL Server 2005/2008中找不到一个新手的临时表使用教程。我想了解临时表与正常表相比的优缺点,它的生命周期以及临时表如何共享(在同一会话中,跨会话)?在SQL Server中推荐一个很好的临时表教程
由于事先 乔治
我搜索了但在SQL Server 2005/2008中找不到一个新手的临时表使用教程。我想了解临时表与正常表相比的优缺点,它的生命周期以及临时表如何共享(在同一会话中,跨会话)?在SQL Server中推荐一个很好的临时表教程
由于事先 乔治
有两种方法可以创建临时表。 这将创建表并从PHYSICALTABLE插入数据;
SELECT FIELD1,FIELD2,FIELD3 INTO TempTable FROM PHYSICALTABLE;
另一种方式是使用CREATE TABLE方法;
CREATE TABLE #TempTable (ID int,NAME varchar(50));
INSERT INTO #TempTable(ID,NAME) VALUES(1,'PERSON');
一旦连接关闭,或者您对它们使用DROP TABLE命令,临时表将被服务器删除。除非使用全局临时表(通过将##添加到表名中),否则每个连接只能访问其自己的临时表。我读过临时表会导致大表性能下降,所以我通常只使用临时表来联合两个表,然后用+ SUM对这两个表进行分组。
这里是关于SQL表一篇好文:
http://databases.aspfaq.com/database/should-i-use-a-temp-table-or-a-table-variable.html
这是对我很有用:) 享受
以下指南将出现不错的开端有关临时的详细信息表(&表变量)包括生命期,共享等:
Are SQL Server Temp Tables Really Necessary?还着眼于使用临时表的性能的原因。
将它们与'普通'表比较我会说最大的不同之处在于普通表在数据库中存在,因此应该在您需要存储正在使用的数据时使用,而应该使用临时表只是一个查询/存储过程等环境中工作......
这里是SQL的快速位创建临时表,并从中选择
-- Create Temp table
CREATE TABLE #temps
(
VId int,
first VARCHAR(255),
surname VARCHAR(255),
DOB DATETIME
PRIMARY KEY (VId)
)
-- Insert some test data
Insert into #temps (Vid, first, surname, DOB)
VALUES (1, 'Bob', 'Jennings','23 Feb 1970')
-- Insert some test data
Insert into #temps (Vid, first, surname, DOB)
VALUES (2, 'John', 'Doe','14 Oct 1965')
-- Select data from the temp table
Select * from #temps
-- Run if you wish to drop the table
-- DROP T ABLE #temps
我感到困惑的有关客户端的概念你的回复。我不确定你是否意味着连接?建立SQL Server连接时,没有称为客户端的参数。 – George2 2009-06-18 08:11:34