易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server中临时表与表变量的区别

我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量。在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢?
  临时表
  临时表与永久表相似,只是它的创建是在Tempdb中,它只有在一个数据库连接结束后或者由SQL命令DROP掉,才会消失,否则就会一直存在。临时表在创建的时候都会产生SQL Server的系统日志,虽它们在Tempdb中体现,是分配在内存中的,它们也支持物理的磁盘,但用户在指定的磁盘里看不到文件。
  临时表分为本地和全局两种,本地临时表的名称都是以“#”为前缀,只有在本地当前的用户连接中才是可见的,当用户从实例断开连接时被删除。全局临时表的名称都是以“##”为前缀,创建后对任何用户都是可见的,当所有引用该表的用户断开连接时被删除。
  下面我们来看一个创建临时表的例子:
Sql代码
CREATE TABLE dbo.#News    
  (    
  News_id int NOT NULL,    
  NewsTitle varchar(100),    
  NewsContent varchar(2000),    
  NewsDateTime datetime    
  )  
CREATE TABLE dbo.#News
  (
  News_id int NOT NULL,
  NewsTitle varchar(100),
  NewsContent varchar(2000),
  NewsDateTime datetime
  )
临时表可以创建索引,也可以定义统计数据,所以可以用数据定义语言(DDL)的声明来阻止临时表添加的限制,约束,并参照完整性,如主键和外键约束。比如来说,我们现在来为#News表字段NewsDateTime来添加一个默认的GetData()当前日期值,并且为News_id添加一个主键,我们就可以使用下面的语句:
Sql代码
ALTER TABLE dbo.#News    
  ADD    
  CONSTRAINT [DF_NewsDateTime] DEFAULT (GETDATE()) FOR [NewsDateTime],    
  PRIMARY KEY CLUSTERED    
  (    
  [News_id]    
  ) ON [PRIMARY]    
  GO  


相关文档:

SQL面试题

1、两表,一张有上百万的数据(表A),另一张只有一万多条数据(表B),A表的外键关联到B表的主键上。
问下面两条SQL语句,那条性能更高?
(1)SELECT A.ID, B.ID from A, B WHERE A.FID = B.ID
(2)SELECT A.ID, B.ID from B, A WHERE A.FID = B.ID ......

SQL SERVER触发器恢复方法、数据库

触发器
触发器是一种特殊类型的存储过程,它不同前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直接调用。触发器是一个功能强大的工具,它使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以用于SQL Server约束、默认值和规则的完整性检查。
当往某一 ......

SQL SERVER 视图操作数据库

视图操作
视图是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。与真实的表一样,视图也包括几个被定义的数据列和多个数据行,但这些数据实际上是被其引用的其他表中的数据。因此,视图不是真实存在的基础表,而是一个虚拟的表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存 ......

SQL 对DateTime (时间和日期)数据类型的基本操作

日期和时间函数对建立一个站点是非常有用的。站点的主人往往对一个表中的数据何时被
更新感兴趣。通过日期和时间函数,你可以在毫秒级跟踪一个表的改变。
返回当前日期和时间
通过函数GETDATE(),你可以获得当前的日期和时间。例如,语句SELECT GETDATE()
返回如下的结果:
…………&h ......

[SQL Server] 导出表结构(数据字典)

-- 数据字典
SELECT
        (case when a.colorder=1 then d.name else '' end)表名,
        a.colorder 字段序号,
        a.name 字段名,
        (case when COL ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号