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


Stored procedure i SQL2000

Postades av 2003-01-21 21:26:53 - Mikael Gustavsson, i forum sql-server/msde, Tråden har 3 Kommentarer och lästs av 752 personer

Jag vill ha en stored procedure i SQL2000.
Denna SP skall skapa en ny post i en tabell som heter UPPDRAG_IN.
Inparametrar enl nedan. 4 st (IN_TID, IN_TEXT, IN_AVSANDARE, IN_REFNR)

IN_ID är ett identity-fält (sätts automatiskt)

SP:n skall innehålla felhantering.
Vid ev fel skall utparametern innehålla en nolla.
Vid OK skall utparametern innehålla tabellens ID (Räknare, identity)

Tabelllayout:
IN_ID Integer (Identity), ej med i SP:n

IN_TID DateTime
IN_TEXT Text (PM enl access vokabulär)
IN_AVSANDARE VarChar 150
IN_REFNR VarChar 50

Utparameter i SP:n
UT_SVAR Integer. (Noll vid fel, IN_ID vid OK)

Tacksam för snabbt svar.

/ Mikael


Svara

Sv: Stored procedure i SQL2000

Postades av 2003-01-21 22:35:23 - Pelle Johansson

Jag tror detta skall fungera. Till att börja med skippade jag inparametern för tiden, istället tas den tid från sql-servern som posten adderas. Därefter körs insert, om det inte lyckas rullar transaktionen tillbaks och 0 returneras. Om den lyckas så skickas id:t tillbaks till användaren.

Kallas med:
<code>
Set rst = con.execute("uppdrag_in '" & in_text & "','" & in_avsandare & "','" & in_refnr)
</code>

Sen har du proceduren:

<code>
CREATE PROCEDURE uppdrag_in
(
@IN_TEXT ntext
,@IN_AVSANDARE VarChar(150)
,@IN_REFNR VarChar(50)
)

AS
BEGIN
BEGIN TRAN

INSERT INTO uppdrag(
IN_TID
,IN_TEXT
,IN_AVSANDARE
,IN_REFNR
)
VALUES
(
GETDATE()
,@IN_TEXT
,@IN_AVSANDARE
,@IN_REFNR
)

IF @@error<>0 OR @@rowcount = 0
BEGIN
IF @@TRANCOUNT = 1
ROLLBACK TRAN
RETURN(0)
END
ELSE
Select @@identity

COMMIT TRAN
END
</code>


Svara

Sv: Stored procedure i SQL2000

Postades av 2003-01-22 12:02:15 - Hobil Haidari

Ett inlägg bara pelle...

när man ska läsa av identity värdet rekommenderas inte att man läser av @identity variabeln direkt då man inte kan vara säker på att den alltid innehåller korrekt variabel...

I MS SQL 2000 har man skapat en inbyggd funktion som just fokuserar på att returnera senast inlagda id-värdet, och den är bättre att nyttja...

SCOPE_IDENTITY() heter den

SELECT SCOPE_IDENTITY()


Svara

Sv: Stored procedure i SQL2000

Postades av 2003-01-22 13:21:22 - Christoffer Hedgate

SCOPE_IDENTITY, IDENT_CURRENT och @@IDENTITY är liknande funktioner, men man kan inte bara säga att man ska använda den ena eller den andra, eftersom de har vissa skillnader.

IDENT_CURRENT returnerar det senast skapade identity-värdet för en viss tabell.

SCOPE_IDENT returnerar det senast skapade identity-värdet i aktuellt scope, dvs procedur, trigger batch etc.

@@IDENTITY returnerar det senast skapade identity-värdet i den session man kör i, oberoende av scope.

Alltså kan man i ovanstående fall använda @@IDENTITY lika bra som SCOPE_IDENT, förutsatt att det inte finns en trigger på tabellen vilken i sin tur gör en ny insert i en annan tabell med en identity-kolumn. Då kommer @@IDENTITY att innehålla den andra tabellens identity-värde, medan SCOPE_IDENT innehåller den första tabellens identity-värde.


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 617
27 953
271 709
5 719
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