Pan*_*kaj 30 table-variable sql-server-2008
什么是表变量?以及如何使用与现有存储过程结果集匹配的列创建表变量(虚拟内存表).
我执行了这个程序,在执行之后,我知道列名.但是,我是否必须声明与存储过程中相同的列数据类型?
编辑:我试过这个
DECLARE @Table TABLE(
name varchar(30) NOT NULL,
location varchar(30) NOT NULL
);
INSERT @Table
SELECT name, location FROM
Exec SPROC @param , @param
Run Code Online (Sandbox Code Playgroud)
小智 30
@tableName 表变量在脚本运行的持续时间内是活动的,即它们仅是会话级对象.
要测试它,在sql server management studio下打开两个查询编辑器窗口,并创建具有相同名称但结构不同的表变量.你会明白的.@tableName因此,该对象是临时的,用于我们的内部数据处理,它对实际的数据库结构没有贡献.
还有另一种类型的表对象可以创建用于临时使用.它们是#tableName声明为物理表的类似create语句的对象:
Create table #test (Id int, Name varchar(50))
Run Code Online (Sandbox Code Playgroud)
此表对象已创建并存储在临时数据库中.与第一个不同,此对象更有用,可以存储大量数据并参与事务等.这些表在连接打开之前一直存在.在重新创建之前,您必须通过以下脚本删除创建的对象.
IF OBJECT_ID('tempdb..#test') IS NOT NULL
DROP TABLE #test
Run Code Online (Sandbox Code Playgroud)
希望这是有道理的!
| 归档时间: |
|
| 查看次数: |
144349 次 |
| 最近记录: |