因此,我试图根据电子邮件地址是否存在于数据库中而将子查询的结果转换为参数。一旦找到它,我希望它将找到的行的ID设置为@ID并删除该行。但是,我收到以下错误:SQL错误:“子查询未与EXISTS一起引入时,只能在选择列表中指定一个表达式。”不知道如何修复
“子查询未使用EXISTS引入时,只能在选择列表中指定一个表达式。”
我已经搜索了高和低的答案,但我来空。我究竟做错了什么?我该如何解决它?
随时留下任何建议,我可以做得更好。谢谢!
DECLARE @EmailAddr varchar(255)
DECLARE @ID int
DECLARE @Email_Text varchar(max)
SET @EmailAddr = (SELECT TOP 1 Email FROM tempdb.dbo.WarrantyAnniversaryEmail)
WHILE (SELECT COUNT(Email) FROM tempdb.dbo.WarrantyAnniversaryEmail WHERE Email = @EmailAddr) > 0
BEGIN
SET @Email_Text = @Email_Text + ';' + (SELECT TOP 1 Id, [First] + ' ' + [Last] as FullName, @EmailAddr, Company, Phone, [Address] + ', ' + City + ', ' + [State] + ' ' + Zip as FullAddress
FROM tempdb.dbo.WarrantyAnniversaryEmail
WHERE Email = @EmailAddr)
SET @ID = (SELECT TOP 1 Id FROM tempdb.dbo.WarrantyAnniversaryEmail WHERE Email = @EmailAddr)
DELETE FROM tempdb.dbo.WarrantyAnniversaryEmail WHERE Id = @ID
PRINT @Email_Text
END
错误信息的哪个方面没有得到? –