DataSet возвращает ошибку «Должен объявить скалярную переменную ...» - PullRequest
0 голосов
/ 14 июля 2010

Я пытаюсь добавить запрос к своему набору данных и получаю сообщение об ошибке «Необходимо объявить скалярную переменную @searchstr».Я нахожу это немного странным, потому что я использовал @variable для передачи параметров, прежде чем без проблем, но по какой-то причине он здесь не работает.

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

Что я делаю не так, что меня сбивает с толку? Подозреваю, КОГДА меня сбивает с толку?

Ответы [ 3 ]

1 голос
/ 27 января 2012

Я предлагаю попробовать это, чтобы заставить анализатор получить параметр

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
WHERE (@searchstr = '' OR 1 = 1)
0 голосов
/ 16 июля 2010

Вероятно, это сбит с толку, потому что вы не используете параметр в выражении WHERE.На первый взгляд это не похоже на то, что вы должны делать на SQL Server, так как это никак не влияет на возвращаемые конкретные строки.

Возможно, вы дадите немного больше информации о том, чего вы на самом деле хотите достичь с помощьюэтот SQL?

0 голосов
/ 14 июля 2010

Возможно, это не так в SQL, но в другом месте (определение параметра и т. Д.)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...