---
title: "MSSQL & dynamiska SP:s"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/123553-mssql-dynamiska-sp-s"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ironhead"
published: "2005-03-02T07:47:09.000Z"
updated: "2005-03-03T10:00:49.000Z"
replies: 5
views: 363
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/123553-mssql-dynamiska-sp-s"
---

# MSSQL & dynamiska SP:s

## #1 — ironhead, 2005-03-02T07:47Z

Hej!

Jag har blivit varnad på detta forum tidigare för att använda strängar i Lagrade Procedurer.

Problemet är att det är himla enkelt om jag vill skicka in ett eller flera värden in i SP:n.

Hur ska man göra istället?

ex. denna parameter sFM tar ett eller flera val med (or/and), hur ska man lösa det utan att bygga strängar i SP:n?

```
	if @sFM <> '' 
		begin
		set @CommaWk = 0
		set @SQLString = @SQLString + N'and  ('
		select @iCommaAt = CHARINDEX(',', @sFM)
		while @iCommaAt > 0
			begin
			if @CommaWk > 0 set @SQLString = @SQLString + N'or '
			if substring(@sFM, 1, @iCommaAt - 1) > '' 
				begin
				set @CommaWk = @CommaWk + 1
				set @SQLString = @SQLString + 'sTest.sFM = ' + substring(@sFM, 1, @iCommaAt - 1)
				end
			select @sFM = substring(@sFM, @iCommaAt + 1, 255)
			select @iCommaAt = charindex(',', @sFM)
			end
```

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

## #2 — LarsG, 2005-03-02T19:02Z

Om du har and/or så går det inte på något annat sätt. Om du ändå skall bygga strängar kan du lika gärna göra det i något språk som har bättre stöd för stränghantering än vad T-SQL har.

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

## #3 — ironhead, 2005-03-03T05:10Z

> **LarsG skrev:**
>
> Om du har and/or så går det inte på något annat sätt. Om du ändå skall bygga strängar kan du lika gärna göra det i något språk som har bättre stöd för stränghantering än vad T-SQL har.

Ponera att jag byggt ihop min sträng i t.ex. ASP....hur använder jag den i min SP sen då?

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

## #4 — LarsG, 2005-03-03T07:43Z

Om du vill skicka den som en parameter till en procedure så får du använda exec eller sp_execute. Men du har ingen fördel av att anropa en procedur, du kan lika gärna exekvera det direkt från din klient.

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

## #5 — ironhead, 2005-03-03T07:54Z

aha! ok! Tack för svaren.

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

## #6 — ironhead, 2005-03-03T10:00Z

Skulle det vara någon skillnad om jag bara använde ett av uttrycken...t.ex. "AND" ?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/123553-mssql-dynamiska-sp-s
