创建临时表 ?????? 方法一: ???? create table #临时表名(字段1 约束条件, ??????????????????????字段2 约束条件, ??????????????????.....) ????????create table ##临时表名(字段1 约束条件, ??????????????????????????字段2 约束条件, ??????????????????????.....) ????????方法二: ???? select * into #临时表名 from 你的表; ?????? select * into ##临时表名 from 你的表; 注:以上的#代表局部临时表,##代表全局临时表
临时表分为两类:本地临时表、全局临时表。
本地临时表仅在当前会话中可见;全局临时表在所有会话中都可见。 本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符 (##table_name)。
除非使用 DROP TABLE 语句显式除去临时表,否则临时表将在退出其作用域时由系统自动除去。当存储过程完成时,将自动除去在存储过程中创建的本地临时表。由创建表的存储过程执行的所有嵌套存储过程都可以引用此表。但调用创建此表的存储过程的进程无法引用此表。
eg.
if exists(select [name] from sys.procedures ?where [name]='proc_test' ) drop procedure proc_test go create proc proc_test as ?create table #t_test(id int primary key); ?insert into #t_test values (10); ?select x=id from #t_test;
调用:exec proc_test
结果:
??????????? x
----------------
??????????? 10
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|