我想添加一個查詢到我的數據集,並得到一個錯誤「必須聲明標量變量@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 2010-07-14 14:14:11
哦,我只是把一些代碼放在一起看看我的SQL是有效的。似乎工作正常,我只是希望把它變成我的數據集,但你不能在數據集查詢中使用DECLARE或SET – wonea 2010-07-14 16:08:47
我放棄並重寫了查詢,而沒有使用CASE或WHEN語句。 – wonea 2010-07-16 15:08:42