簡體   English   中英

從 select 語句分配變量

[英]Assigning variable from select statement

哪個是正確的語法?

DECLARE @TotalRows INT
SET @TotalRows = (SELECT COUNT(*) FROM MyTable WHERE MyID = Value)

或者

DECLARE @TotalRows INT
SELECT @TotalRows = COUNT(*) FROM MyTable WHERE MyID = Value

這還重要嗎?

設置與 select 之間的區別

  1. SET 是變量賦值的 ANSI 標准,SELECT 不是。
  2. SET 一次只能賦值一個變量,SELECT 一次可以進行多個賦值。
  3. 如果從查詢分配,SET 只能分配一個標量值。 如果查詢返回多個值/行,則 SET 將引發錯誤。 SELECT 會將其中一個值分配給變量並隱藏返回多個值的事實(因此您可能永遠不知道為什么其他地方出了問題 - 樂於排除故障)
  4. 當從查詢分配時,如果沒有返回值,則 SET 將分配 NULL,其中 SELECT 根本不會進行分配(因此變量不會從其先前的值更改)
  5. 至於速度差異 - SET 和 SELECT 之間沒有直接差異。 然而,SELECT 一次完成多項任務的能力確實使其在速度上比 SET 稍有優勢。

暫無
暫無

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

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