0
我寫了下面的腳本:如何避免「子查詢返回超過1個值」報告?
IF OBJECT_ID('tempdb..#Temp') IS NOT NULL
DROP TABLE #Temp
create table #Temp
(
[KeyName] [nvarchar](max),
[CertName] [nvarchar](max),
)
Go
INSERT INTO #Temp
EXEC fetch_data
GO
IF(Select #Temp.KeyName From #Temp) = 'SSN_Key_01' AND (Select CertName From
#Temp) = 'PasswordManager001'
EXEC decrypt_1
Else
IF(Select KeyName From #Temp) = 'SSN_Key_02' AND (Select CertName From #Temp)
= 'PasswordManager002'
EXEC decrypt_2
Else
IF(Select KeyName From #Temp) = 'SSN_Key_03' AND (Select CertName From #Temp)
= 'PasswordManager003'
EXEC decrypt_3
GO
,並不斷得到錯誤:子查詢返回多個值。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的。
我只是試着對我的返回值做一點比較,並根據腳本中可見的三個條件執行它們。
爲什麼我不斷收到報告?
因爲選擇返回多於1行,mybe要使用'IF EXISTS' – Sami
運行fetch_data存儲過程並查看它返回的內容。或者,獨立運行這些子查詢並查看結果。 –