---
title: "Skapa korrekta SP´s"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/92430-skapa-korrekta-sp-s"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ironhead"
published: "2003-12-11T14:58:36.000Z"
updated: "2003-12-12T09:18:27.000Z"
replies: 4
views: 214
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/92430-skapa-korrekta-sp-s"
---

# Skapa korrekta SP´s

## #1 — ironhead, 2003-12-11T14:58Z

Halloj!

Jag har en massa Lagrade Procedurer som jag vill effektivisera.
Denna SP fungerar, men jag skulle vilja effektivisera partiet där man kollar om det finns en eller flera värden i "@sFM" (OR/AND).

Kan man göra på nåt bättre/effektivare sätt?

Jag vet att man helst inte ska stränga ihop SQL-satsen i SP:n, men behöver hjälp för att snickra till det 

```
SET @SQLstring ='SELECT * FROM tabell WHERE test=' + @test

		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 + 'Fakt.sFakt = ''' + substring(@sFM, 1, @iCommaAt - 1) + ''''
				end
			select @sFM = substring(@sFM, @iCommaAt + 1, 255)
			select @iCommaAt = charindex(',', @sFM)
			end
			if @CommaWk > 0
				begin
				set @SQLString = @SQLString + N' or '
				end
		if @sFM > '' SET @SQLString =  @SQLString +  N'Fakt.sFakt =  ''' + @sFM + ''''
		set @sqlstring = @SQLString + N')'
		end
```

 :l

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

## #2 — LarsG, 2003-12-11T16:10Z

Förmodligen går det väl att förbättra. Jag skulle inte börja i den änden om jag upplevde prestandaproblem.

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

## #3 — ironhead, 2003-12-11T20:36Z

nja. jag upplever inga prestandaproblem....men när jag frågar nån så säger de att jag gör på fel sätt...men sen hör jag inget mer :\\

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

## #4 — LarsG, 2003-12-11T20:52Z

Här finns lite alternativa sätt och även en länk där man skapar en tabellvariabel. Det sistnämnda sättet tycker jag är det bästa då man undviker dynamisk sql.

<http://www.tek-tips.com/faqs.cfm?spid=183&sfid=3979>

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

## #5 — ironhead, 2003-12-12T09:18Z

oki! Tack! :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/92430-skapa-korrekta-sp-s
