使用TEMP表来存储Global Vars效率低吗?

时间:2011-03-23 20:20:47

标签: tsql

我知道现在T-SQL中没有全局变量。

我知道另一种替代方法我只是学会了你可以将它们存储在临时表中,只需根据需要更新它们然后使用临时表的值

这对于大量数据来说效率低吗?我的意思是考虑这个:

    create table #vars (var1 int, var2 bigint, var3 int)

    GO

    insert #vars(0,0,0) -- default to 0

    GO

    Update #vars set var1 = 1
    update #vars set var2 = 4
    update #vars set var3 = 6

    Then use var1, var2, and var 3 in a SQL statement here

    GO

    repeat this process...update and use

GO

...REPEAT

所以我的意思是每次我发送多个更新调用SQL Server只是为了设置它们?就执行计划而言,对我来说似乎效率低下吗?我想我可以跑去看看,但只是好奇这是否通常是一种不好的做法?

我试图摆脱的是不得不像大多数人一样在每个我要批处理的GO的SQL语句中复制这些变量

1 个答案:

答案 0 :(得分:0)

至少

Update #vars set var1 = 1
update #vars set var2 = 4
update #vars set var3 = 6

可以更改为

Update #vars set var1=1,var2=4,var3=6