SQLServer中临时表与表变量的区别分析
16lz
2022-01-16
在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢?
临时表
临时表与永久表相似,只是它的创建是在Tempdb中,它只有在一个数据库连接结束后或者由SQL命令DROP掉,才会消失,否则就会一直存在。临时表在创建的时候都会产生SQL Server的系统日志,虽它们在Tempdb中体现,是分配在内存中的,它们也支持物理的磁盘,但用户在指定的磁盘里看不到文件。
临时表分为本地和全局两种,本地临时表的名称都是以“#”为前缀,只有在本地当前的用户连接中才是可见的,当用户从实例断开连接时被删除。全局临时表的名称都是以“##”为前缀,创建后对任何用户都是可见的,当所有引用该表的用户断开连接时被删除。
下面我们来看一个创建临时表的例子:
CREATE TABLE dbo.#News ( News_id int NOT NULL, NewsTitle varchar(100), NewsContent varchar(2000), NewsDateTime datetime )
ALTER TABLE dbo.#News ADD CONSTRAINT [DF_NewsDateTime] DEFAULT (GETDATE()) FOR [NewsDateTime], PRIMARY KEY CLUSTERED ( [News_id] ) ON [PRIMARY] GO
更多相关文章
- ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
- android上一些方法的区别和用法的注意事项
- [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o
- Android中的FILL_PARENT与WRAP_CONTENT的区别
- [Android] ACTION_GET_CONTENT与ACTION_PICK的区别
- android上一些方法的区别和用法的注意事项
- Android之adb环境变量配置
- android 目录结构,adb环境变量配置
- linearLayout 和 relativeLayout的属性区别