[SQLTips] SQL优化技巧-批处理替代游标

通过MSSQL中的用户自定义表类型可以快速将需要处理的数据存储起来,生成新的临时表(这里使用变量表),然后根据表中字段进行批处理替代游标。

用户自定义表类型

 0 --创建用户自定义表类型
1
Create Type [dbo].[type_XXXTable] As Table( 2 [Item1] [Varchar](255) Null, 3 [Item2] [Varchar](255) Null, 4 [Item3] [Varchar](255) Null, 5 [Item4] [Varchar](255) Null, 6 [Item5] [Varchar](255) Null, 7 [Item6] [Varchar](255) Null, 8 [Item7] [Varchar](255) Null, 9 [Item8] [Varchar](255) Null, 10 [Item9] [Varchar](255) Null, 11 [Item10] [Varchar](255) Null, 12 [ItemInt1] [Int] Null, 13 [ItemInt2] [Int] Null, 14 [ItemInt3] [Int] Null, 15 [ItemInt4] [Int] Null, 16 [ItemInt5] [Int] Null, 17 [ItemFloat1] [Decimal](28, 8) Null, 18 [ItemFloat2] [Decimal](28, 8) Null, 19 [ItemFloat3] [Decimal](28, 8) Null, 20 [ItemFloat4] [Decimal](28, 8) Null, 21 [ItemFloat5] [Decimal](28, 8) Null, 22 [ItemDateTime1] [DateTime] Null, 23 [ItemDateTime2] [DateTime] Null 24 ) 25 Go

 

0    --引用新数据表类型存储t_XXX表的FieldName1

1
Declare @XXX type_XXXTable 2 Insert Into @XXX(Item1) --Item1为刚才创建表类型的第一个字段 3 Select FIeldNmae1 From t_XXX

 

1 --将游标动作改写为表处理
2 eg: 
3     Select FieldName1 Into #t_XXX

 

 2018-07-14 14:34:38 

 

posted @ 2018-07-14 14:37  FuluoQued  阅读(164)  评论(0编辑  收藏  举报