Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Loopa i en Stored procedures

Postades av 2003-09-22 14:39:16 - Fredrik Ryde, i forum sql-server/msde, Tråden har 4 Kommentarer och lästs av 842 personer

Hej!

Jag skulle vilja loopa genom ett resultat i en stored procedure men vet inte hur man gör.

Jag ställer en SQL-fråga som alltid kommer att ge mer än en rad som svar. Jag vill sedan använda dessa rader en efter en ungefär som i ASP när man gör
<code>do until rs.EOF </code> eller liknande

Hur gör man detta direkt i en Stored Procedure???

/Fredrik


Svara

Sv: Loopa i en Stored procedures

Postades av 2003-09-22 14:59:21 - Kalle Dahlberg

Man använder en cursor lämpligtvis. Men först bör du fråga dig själv om du verkligen behöver en cursor eller inte. De är inte särskilt fördelaktiga prestandamässigt.

Om du talar om för oss vad du vill göra mer precist, så kanske vi kan lösa det utan cursor. Annars kan du slå upp cursor i Books Online eller på MSDN så bör du hitta en guide för hur man gör.


Svara

Sv: Loopa i en Stored procedures

Postades av 2003-09-22 15:07:53 - Andreas Hillqvist

KAn du inte förklar mer i detalj vad du vill göra. Finns kanske ett mer effektivt sätt att göra det på.


Svara

Sv: Loopa i en Stored procedures

Postades av 2003-09-22 15:22:26 - Fredrik Ryde

Hej!
Jag hittade hur man gör med cursors och jag tror jag har löst problemet men om det finns ett mer effektivt sätt så är jag själklart intresserad av den bästa lösningen.

Vad jag gör är att jag plockar fram emailadresser ur en tabell och skickar mail till dessa personer.
Dock ska innehållet delvis variera beroende på vem som är mottagare.

Vidare har jag tänkt detta ska köras en gång per dygn med hjälp av en trigger i databasen.

<code>

ALTER PROCEDURE dbo.sp_send_alertMail

AS

DECLARE
@devID varchar(10),
@to varchar(100),
@subject varchar(100),
@message varchar(4000)

DECLARE dev_cursor CURSOR FOR
SELECT D.DevID, U.Email
FROM DATA_Deviation D
INNER JOIN DATA_Users U ON D.IssuedBy=U.UserID
WHERE DATEDIFF(Day, CreateDate, getdate())>150 AND D.Concluded=0

OPEN dev_cursor

FETCH NEXT FROM dev_cursor INTO @devID, @to

WHILE @@FETCH_STATUS = 0
BEGIN

SET @subject = 'Påminnelse angående ärende nr' + @devID

SET @message ='Du måste åtgärda ärende: ' + @devID

EXEC sp_send_cdosysmail 'noreply@abcdefg.se',
@to,
null,
null,
@subject,
@message

FETCH NEXT FROM dev_cursor INTO @devID, @to
END
CLOSE dev_cursor
DEALLOCATE authors_cursor


</code>


Svara

Sv: Loopa i en Stored procedures

Postades av 2003-09-22 18:38:30 - Kalle Dahlberg

Helt OK med cursor i detta fall!

Kolla dock på olika sorters cursors (ex. FAST_FORWARD), då de är snabbare/använder mindre resurser.

/Kalle


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
458
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies