Brimba Medlem sedan dec. 1999 5 874 inlägg Frågan 10 juli 2002 09:42 #1 Hej!
Jag har en SP
...
@lngObjectID INT,
@strIds varchar(8000)
...
DECLARE @sql varchar(8000)
Set @sql=
'DELETE
FROM
tbln
WHERE
fld1 = '+convert(nvarchar (6), @lngObjectID)+'
AND
fld2 IN('+@strIds+')'
EXEC(@sql)
Problemet är nu att jag vill att strIds skall vara optional och om den inte skickas med så skall inte fld2 tas med i WHEREsatsen
Jag vet att man kan lösa det exempelvis såhär:
Men jag tycker inte lösningen är så snygg
...
@lngObjectID INT,
@strIds varchar(8000) = 'xx'
...
if (@strIds='xx')
begin
Set @sql='this'
end
else
begin
Set @sql='this and that'
end
EXEC(@sql)
L LarsG Medlem sedan dec. 2000 12 464 inlägg if @strids is not null
begin
DECLARE @sql varchar(8000) Set @sql= 'DELETE FROM tbln WHERE
fld1 = '+convert(nvarchar (6), @lngObjectID)+' AND fld2 IN('+@strIds+')'
EXEC(@sql)
else
delete from tbln where fld1 = @lngobjectid
Undvik dynamisk sql om du kan.