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存储过程并查看它返回的内容。或者,独立运行这些子查询并查看结果。 –