Я пытаюсь добавить запрос к моему набору данных и получить сообщение об ошибке «Должен объявить скалярную переменную @searchstr». Я нахожу это немного странным, потому что я использовал параметр @variable для передачи параметров до того, как проблема не возникла, но по какой-то причине это не удается.DataSet возвращает ошибку «Должен объявить скалярную переменную ...»
select DISTINCT g.groupname,
CASE WHEN s.siteguid = @searchstr THEN 1 ELSE 0 END AS doesitexist
from groups g left outer join sitegroups as sg on g.groupguid = sg.groupguid
left outer join sites as s on sg.siteguid = s.siteguid
Найдено он не в LINQPad, так что добавьте немного больше информации, хотя, к сожалению, это до сих пор не работает в DataSet. :-(следующих работ в LINQPad и SQL Server Management Studio.
declare @searchstr nvarchar(64);
set @searchstr = '21EC2020-3AEA-1069-A2DD-08002B30309D';
select DISTINCT g.groupname,
CASE WHEN s.siteguid = @searchstr THEN 1 ELSE 0 END AS doesitexist
from groups g left outer join sitegroups as sg on g.groupguid = sg.groupguid
left outer join sites as s on sg.siteguid = s.siteguid
Что я делаю не так, что это отключение меня? Подозреваю, когда отключение меня?
Я не знаю, почему он дает вам ошибку вы упомянули, но мне интересно, почему вы объявили '@ searchstr' к быть «nvarchar (64)». Является ли 'siteguid' не введенным как' uniqueidentifier'? – Thomas
О, я просто собирал код, чтобы увидеть, где мой SQL был действительным. Кажется, что все нормально, я был в два раза в надежде выманить его в свой DataSet, но вы не можете использовать DECLARE или SET в запросе DataSet – wonea
Я сдал и переписал запрос без использования операторов CASE или WHEN. – wonea