tugberk
tugberk

Reputation: 58454

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 conflict?

Upvotes: 4

Views: 945

Answers (2)

gbn
gbn

Reputation: 432271

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]

Upvotes: 10

Mic
Mic

Reputation: 31

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

Upvotes: 3

Related Questions