Member 12962919 Ответов: 2

Как обновить таблицу, где значение поступает из другой таблицы?


Я хочу обновить таблицу если SMS доступно в другой таблице здесь мой код
update tblSMSSendData set tblSMSSendData.SMSCAMPID=(select dbo.tblCampaignMaster.ID from dbo.tblCampaignMaster where tblSMSSendData.SMSTEXT='HERO City Motors Mega Scooter offer till 20th July, Low Down Payment Rs.3500. ROI 12%, FREE Helmet, Insurance, Exchange Bonus & Referal Gift - 9865209696*')

а ошибка есть
Msg 512, Level 16, State 1, Line 6
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.


Что я уже пробовал:

update tblSMSSendData set tblSMSSendData.SMSCAMPID=(select dbo.tblCampaignMaster.ID from dbo.tblCampaignMaster where tblSMSSendData.SMSTEXT='HERO City Motors Mega Scooter offer till 20th July, Low Down Payment Rs.3500. ROI 12%, FREE Helmet, Insurance, Exchange Bonus & Referal Gift - 9865209696*')

Tomas Takac

Как насчет того, чтобы сделать это в два этапа? Сначала прочтите tblCampaignMaster.Идентификатор в переменную и потом использовать эту переменную, чтобы обновить tblSMSSendData.SMSCAMPID.

2 Ответов

Рейтинг:
17

Tomas Takac

Сначала прочтите tblCampaignMaster.Идентификатор в переменную и потом использовать эту переменную, чтобы обновить tblSMSSendData.SMSCAMPID.

declare @id int

select @id=ID from dbo.tblCampaignMaster cm
where cm.SMSTEXT='HERO City Motors Mega Scooter offer till 20th July, Low Down Payment Rs.3500. ROI 12%, FREE Helmet, Insurance, Exchange Bonus & Referal Gift - 9865209696*'

update tblSMSSendData set SMSCAMPID=@id


Member 12962919

это не работает

Msg 4104, Уровень 16, Состояние 1, Строка 6
Многосоставный идентификатор "tblSMSSendData. SMSTEXT" не может быть привязан.

Tomas Takac

Просто чтобы быть уверенным, что я добавил схему dbo-проверьте обновленное решение.

Рейтинг:
11

Advay Pandya

Привет,

Избегайте использования подзапроса здесь, так как из вашего условия возвращается несколько значений.

Попробуйте обновить инструкцию From, как показано ниже:

UPDATE tblSMSSendData 
SET tblSMSSendData.SMSCAMPID= tblCampaignMaster.tblCampaignMaster.ID 
FROM dbo.tblCampaignMaster 
WHERE tblSMSSendData.SMSTEXT=
'HERO City Motors Mega Scooter offer till 20th July, Low Down Payment Rs.3500. ROI 12%, FREE Helmet, 
Insurance, Exchange Bonus & Referal Gift - 9865209696*'


Пожалуйста, дайте мне знать, если решение не удовлетворяет вашим требованиям.


Member 12962919

Спасибо, но проблема уже решена