sql server 中临时表分为会话临时表和永久临时表。会话临时表在会话结束后自动被删除,永久临时表与基本表的使用上基本无差异,需要显示调用drop将其删除。
创建临时表
创建会话临时表
create table #table_name(column_name datatype constraint_name[.....]);
创建永久临时表
create table ##table_name(column_name datatype constraint_name[.....]);
临时表的约束可以在创建表之后建立,使用
alter table table_name add constraint contraint_name;语句创建。
表类型
表类型是一个用户自定义类型,用户可以创建自己所需要的表类型,说白了就是把表结构和约束预先创建好,后面要使用的时候直接根据该表类型创建表变量。
创建表类型
create type type_name as table(column_name datatype constraint_name[.....]);
在这里表中的约束必须在创建类型的时候就创建,不能使用alter语句。
根据表类型申明表变量
declare @table_variable type_name;
表变量
表变量是一种数据类型,该类型具有表的结构和部分表的功能。可以对其进行查询、插入、更新、删除。值得注意的是表变量不能使用select .. into语句插入数据
但是临时表可以。表变量可以结合存储过程、函数等程序块使用。表变量与其他基本变量类型的方法和申明一致。
申明表变量
declare @table_variable table(column_name datatype constraint_name[.....]);