我想以這樣一個事實作為序言,即我確實理解使用OPTION (MAXDOP)通常是不受歡迎的和不可取的。然而,僅僅說“不要使用OPTION (MAXDOP)”并不能解決手頭問題的狹隘焦點。出于這個問題的目的,假設我有一個場景,我被逼到了角落,由于其他問題超出了我對這個特定問題的實際要求,因此我陷入了困境。讓我們暫時不要陷入這些原因。專門針對這個問題,我正在撰寫一個存盤程序,其中我有一個 IF 陳述句,如下所示:
IF ((SELECT TOP 1 Identifier
FROM SomeTable
WHERE <some conditions>) IS NOT NULL)
BEGIN
<do some stuff>
END
我希望 IF 陳述句中的查詢運行OPTION (MAXDOP 1)- 同樣,我知道這通常不是您想要做的,為了這個問題,讓我們保存該討論。我可以這樣做嗎?似乎我是否將該OPTION (MAXDOP 1)位放在帶有 IF 的行的末尾,緊跟在 IS NOT NULL 之后,或者之后<some conditions>,我的查詢編輯器告訴我它不允許在那里。有什么地方可以讓它發生嗎?
uj5u.com熱心網友回復:
有趣的。似乎您不能對括在括號中的查詢使用查詢提示,該查詢不是派生表 - 即需要單個值的表。其實我不知道這個子句是怎么呼叫的,通過檔案去搜索,歡迎各位大神解答。
不過,您可以使用變數來執行您想要的操作:
SELECT TOP 1 @identifier=Identifier
FROM SomeTable
WHERE <some conditions>
option (maxdop 1)
IF @identifier IS NOT NULL......
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/346127.html
標籤:sql sql-server 查询语句 if 语句 暗示
上一篇:撰寫SQL函式,但無法按預期作業
下一篇:洗掉在不同列中具有相同鍵的重復行
