簡體   English   中英

表變量在sql server 2008 r2上是否安全?

[英]Are table variables thread safe on sql server 2008 r2?

例如,我將在我的一個存儲過程中使用以下表變量;

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

這個變量線程安全嗎? 如果多個請求同時發生,您認為會發生沖突嗎?

是。

“線程安全”在SQL Server中將是“范圍安全的”或“連接安全的”。 范圍安全也意味着連接安全。

表變量類似於正常變量:該范圍的本地變量。 每個連接彼此隔離,每個連接都是一系列范圍

最好的例子就是它們之間的區別

  • SCOPE_IDENTITY =范圍安全
  • @@ IDENTITY =連接安全,不保證范圍安全
  • IDENT_CURRENT =無論如何都不安全

請參閱: @@ IDENTITY vs SCOPE_IDENTITY()vs IDENT_CURRENT [sql server 2005]

表變量在創建它的范圍內是本地的。 兩個同時連接不共享表變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM