這是我的存儲過程中的一個部分:如何檢查SQL Server中的表變量是否爲空?
@dataInTable dbo.Table_Variable readonly,
....
AND (
(@dataInTable IS NULL)
OR
(item IN (SELECT T FROM @dataInTable))
)
@dataInTable IS NULL
是錯誤的語法,錯誤是
Must declare the scalar variable "@dataInTable"
所以我將其更改爲:
(SELECT T FROM @dataInTable) IS NULL
該作品但是如果@dataInTable
有多個項目,我收到一個錯誤:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
可以理解,所以我將其更改爲:
(SELECT TOP(1) T FROM @ProgramRatings) IS NULL
完美的作品,我有什麼是性能問題。
我想知道,如果有一個更簡單的方法來檢查表變量是否是空的,就像
AND (
(@dataInTable IS EMPTY)
OR
(item IN (SELECT T FROM @dataInTable))
)
+1''EXISTS'可以比'COUNT'更有效率,因爲它在第一行之後停止。 – 2012-01-05 18:31:13
謝謝,我試過存在,但它不能在選擇條件內使用:AND( (我不能把這裏存在) OR (項(選擇T FROM @dataInTable)) )。你知道正確的語法 – 2012-01-05 18:44:37
@EricYin如果你想在'SELECT'中使用它,你可能正在尋找'CASE'。根據目前發佈的片段很難知道自己在做什麼。 – 2012-01-05 18:50:52