我已經搜索過,沒有發現任何關於它的信息(我相信這是不可能的)。我的問題是我必須檢查臨時表是否存在,以及是否有臨時表上的某些特定數據。IF條款中的短路
有沒有人遇到過這個?你是如何設法解決它的?我想避免創建數百萬的IF..ELSE
塊。
編輯:
IF (OBJECT_ID('tempdb..#tempTable') IS NOT NULL
AND EXISTS (SELECT * FROM #tempTable WHERE THIS_COLUMN = 'value'))
BEGIN
PRINT 'Temp table and data exists'
END
ELSE
BEGIN
PRINT 'Temp table or data does not exist'
END
這是我想做的事情。當tempTable不存在時(可能發生),問題就出現了。它會拋出一個錯誤,因爲儘管第一個stamement返回false,它仍會繼續執行第二個語句。而SELECT
語句無法找到該表並因此引發該錯誤。我找到的解決方案是這樣:
IF OBJECT_ID('#tempTable') IS NOT NULL
BEGIN
IF EXISTS (SELECT * FROM #tempTable WHERE THIS_COLUMN = 'value'
BEGIN
PRINT 'Temp table and data exists'
END
ELSE
BEGIN
PRINT 'Temp table exists but data does not exist'
END
END
ELSE
BEGIN
PRINT 'Temp table does not exist'
END
我的問題是,有沒有有2個條件,如果第一個條件返回false不檢查第二個的方法嗎?在編程語言中使用&&
的種類。
數以百萬計?聽起來像_two_從你的描述。 – Oded
那麼,我必須檢查臨時表是否存在,以及特定數據是否存在很多次。 –
獨家AND?這樣的事情不存在。向我們展示一些您的數據樣本,以及您需要在那裏檢查的具體內容。 – trailmax