---
title: "SP valfri inparameter"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/47611-sp-valfri-inparameter"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Brimba"
published: "2002-07-10T09:42:55.000Z"
updated: "2002-07-10T09:58:28.000Z"
replies: 2
views: 202
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/47611-sp-valfri-inparameter"
---

# SP valfri inparameter

## #1 — Brimba, 2002-07-10T09:42Z

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 :q

```
...
@lngObjectID 	INT,
@strIds      	varchar(8000) = 'xx'
...
	if (@strIds='xx')
	begin
		Set @sql='this'
	end
	else
	begin
		Set @sql='this and that'
	end
	EXEC(@sql)
```

Permalänk: https://www.webforum.nu/p/47611

## #2 — LarsG, 2002-07-10T09:50Z

```
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.

Permalänk: https://www.webforum.nu/p/716302

## #3 — Brimba, 2002-07-10T09:58Z

jag förstår, tackar!

Permalänk: https://www.webforum.nu/p/716310

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/47611-sp-valfri-inparameter
