开发者

Are table variables thread safe on sql server 2008 r2?

For example, I am going to use the following table variable inside one of my stored procedures;

DECLARE @MyTempTable TABLE 
(
   someField int,
   someFieldMore nvarchar(50)
)

Is this variable thread safe? if multiple request comes at the same time, do you think there would be a confl开发者_如何学JAVAict?


Yes.

"Thread safe" would be "scope-safe" or "connection-safe" in SQL Server. Scope-safe implies connection-safe too.

Table variables are like normal variables: local to that scope. Each connection is isolated from each other, and each connection is a series of scopes

The best example of this is the difference between

  • SCOPE_IDENTITY = scope safe
  • @@IDENTITY = connection safe, not scope safe
  • IDENT_CURRENT = not safe either way

See: @@IDENTITY vs SCOPE_IDENTITY() vs IDENT_CURRENT [sql server 2005]


The table variable is local in the scope where it is created. Two simultanious connections does not share the table variable.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜