---
title: "Här har ni kod för testning av storeprocedures"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/140403-här-har-ni-kod-för-testning-av-storeprocedures"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Lukaspojken"
published: "2006-01-05T14:12:27.000Z"
updated: "2006-01-10T12:28:50.000Z"
replies: 5
views: 517
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/140403-här-har-ni-kod-för-testning-av-storeprocedures"
---

# Här har ni kod för testning av storeprocedures

## #1 — Lukaspojken, 2006-01-05T14:12Z

Jag har gjort ett enkelt script för att testa procedurer. Kom gärna med feedback på förbättringar.

**Kom-igång-guide**
1\. Skapa en databas som heter PerformanceTest. Kör scriptet i tabeller.txt
2\. Öppna Query Analyzern och välj den databas du vill köra testerna på. Klipp och klistra in det andra scriptet.
3\. Sätt in korrekta värden på dessa rader:
Set @StoreprocedureName = 'proc_XXXXXXXXX'

Samt korrekta inparametrar:
Set @StoreprocedureParameters = '230, ''2005-01-01'', ''2005-02-15'''

Det är lite speciellt med inparametrarna men ni listar nog ut hur det funkar. I annat fall får ni fråga.

4\. Sen är det bara att köra :)

Som sagt är det någon som har några förslag på förbättringar av scriptet så får ni gärna säga till...

Bilagor:

- [Tabeller.txt](https://www.webforum.nu/a/9087.txt)
- [Script för testning av sps.txt](https://www.webforum.nu/a/9088.txt)

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

## #2 — emission, 2006-01-07T17:42Z

En bra idé, men att exekvera stored procedures med exec och parametrarna i kommandotexten är inte särskilt bra. Det ska undvikas i driftsituationer och därför är det inte särskilt rättvist att köra tester med det. Använd åtminstone sp_executesql i stället för exec.

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

## #3 — Lukaspojken, 2006-01-10T11:19Z

Tack för ditt svar!

Om jag anropar en procedur via Query Analyzern så är väl nedanstående tre alternativ identiska?

1) proc_XXXXXXX 'invärde'

2) exec proc_XXXXXXX 'invärde'

3) Set @StoreprocedureName = 'proc_XXXXXXXXXX'
Set @StoreprocedureParameters = ''invärde''
Set @Storeprocedure = @StoreprocedureName + ' ' + @StoreprocedureParameters
Exec (@Storeprocedure)

Sen har jag en fråga till. Om jag förstått sp_executesql rätt så kan man inte anropa en sp via den utan man kan enbart skicka med direkt sql-satser (typ Select User_Code from tbl_User) och det blir väl inte så bra om man använder sig av enbart procedurer?

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

## #4 — lenap, 2006-01-10T11:45Z

> **Lukaspojken skrev:**
>
> Om jag förstått sp_executesql rätt så kan man inte anropa en sp via den utan man kan enbart skicka med direkt sql-satser (typ Select User_Code from tbl_User) och det blir väl inte så bra om man använder sig av enbart procedurer?

Det går att använda sp_executesql med procedures också. Jag skriver
sp_executesql N'EXEC myProcedure'
Det går säkert att skriva på andra sätt också. Jag har precis lärt mig detta.

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

## #5 — Lukaspojken, 2006-01-10T12:16Z

\-\> lenap
Det visste jag inte. Det var bra att det fanns!

Jag har en lite fundering kvar :) Var ligger fördelen i att använda sp_executesql istället för exec?

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

## #6 — LarsG, 2006-01-10T12:28Z

Skillnaden är att du kan parametrisa anrop med sp_execute_sql och få tillbaka värden i parametrar vilket inte går med EXEC. Det är också så att exekveringsplanen för frågor som utförs med sp_execute_sql sparas och kan därför återanvändas.

Att använda 

```
sp_executesql N'EXEC myProcedure' 
-- eller lukaspojkens 3:e alternativ ovan
```

istället för

```
myProcedure
```

leder bara till onödig processering.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/140403-här-har-ni-kod-för-testning-av-storeprocedures
