SQL Server表变量
i. 什么是表变量
表变量是一种特殊的数据类型,用于存储结果集以进行后续处理。表变量主要用于临时存储一组行,这些行是作为表值函数的结果集返回的。可将函数和变量声明为 table 类型。table 变量可用于函数、存储过程和批处理中。表变量类似于临时表,只是它在内存中存储,而临时表则在磁盘中存储。常常可以用表变量代替游标或者临时表,提高执行效率。
ii. 表变量的例子
l Hello world例子:
1 declare @userName varchar(100)
2 declare @targettable table
3 (
Num int,
userName varchar(100)
4 )
5 insert into @targettable values(1,'Hello world')
6 select * from @targettable
l 表变量代替游标的复杂一点例子(电销系统中的例子):
1 set ANSI_NULLS ON
2 set QUOTED_IDENTIFIER ON
3 go
4 --declareglobal table variable
5 ALTER PROC [dbo].[TargetAssignOpt]
6 @whereClause NVARCHAR(2000),
7 @taskSerialNo INT,
8 @csrName NVARCHAR(50),
9 @csrAssignCountINT,
10 @loginUserID NVARCHAR(50),
11 @AssignBatchNoINT
12 --@AssignCountint output
13 AS
14 BEGIN
15 --declarelocal variables
16 DECLARE @cphonevarchar(50),
17 @ephase int,
18 @luserid varchar(50),
1