Avatar billede TV47 Seniormester
08. oktober 2021 - 16:06 Der er 6 kommentarer og
1 løsning

Stored procedure - overførsel af tabel/felt værdi til retur variabel

Hejsa.
Jeg har lavet nedenstående kode i en MS Sql stored procedure.
Jeg har problemer med at få overført værdien af number til min retur variabel @retur. Jeg regner ikke kun med at kunne modtage et 0 eller 1 på min retur variabel. Det bliver et firecifret tal som skal havne i variablen. Hvad gør jeg forkert eller hvad mangler?

USE [db]
GO
/****** Object:  StoredProcedure [dbo].[jk_ten]    Script Date: 08-10-2021 15:54:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[jk_ten]  @data CHAR(3)
AS 

BEGIN TRAN 

Declare @retur  int

SELECT Number FROM Customer   
WHERE DATA = @data 

SET @retur = Number

COMMIT TRAN 

return (@retur)
Avatar billede arne_v Ekspert
08. oktober 2021 - 16:14 #1
Prøv at ændre:

SELECT Number FROM Customer 
WHERE DATA = @data

SET @retur = Number

til:

SET @retur = (SELECT Number FROM Customer  WHERE DATA = @data)
Avatar billede arne_v Ekspert
08. oktober 2021 - 16:15 #2
Men er der en god grund til at bruge en retur værdi og ikke bare returnere et result set?
Avatar billede TV47 Seniormester
08. oktober 2021 - 16:58 #3
Du er ren guld Arne, det virker.

Jeg ved godt man kan arbejde med output også, hvis det er det du mener.
Jeg så det med return variabel først... egentlig bare derfor.
Avatar billede arne_v Ekspert
08. oktober 2021 - 17:09 #4
En SQLServer SP kan returnere data på 3 måder:
- return value
- out parameter
- result set

Det er det sidste jeg foreslår.

Hvad kalder den SP?
Avatar billede TV47 Seniormester
08. oktober 2021 - 17:18 #5
Noget C# kode, der skal have en værdi for at kunne indsætte en record.
Værdien i situationen var en integer.
Avatar billede arne_v Ekspert
08. oktober 2021 - 17:31 #6
Avatar billede TV47 Seniormester
08. oktober 2021 - 17:33 #7
Jeg vil tage et kig på det.
God weekend.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester