Avatar billede agertoft Nybegynder
13. oktober 2005 - 15:20 Der er 9 kommentarer og
1 løsning

Indsætte decimal-tal i tabel via stored procedure

Jeg har en tabel, hvori jeg har et decimal-tal, som er sat til "Precision" = 18 og "Scale" = 2.

Jeg har så en stored procedure, hvor jeg prøver at smide 2.22 ind i dette felt. Men decimal-tallet bliver afrundet til 2, når det er indsat. Det er kun et problem, når jeg indsætter gennem den stored procedure. Indsætter jeg direkte fra Enterprise Manageren har jeg ingen problemer med det...

Hvad er der galt?
Avatar billede dsj Nybegynder
13. oktober 2005 - 15:30 #1
Må vi se den omtalte SP? :-)
Avatar billede agertoft Nybegynder
13. oktober 2005 - 15:52 #2
Ja det er det her jeg vil:

ALTER PROCEDURE dbo.CreateSP
(
    @mitFelt    DECIMAL(18,2),
)

BEGIN
    INSERT INTO minTabel (mitFelt) VALUES (@mitFelt)
END

GO

Der ligger i mere i SP'en, men det der er det, mit problem omhandler :)
Avatar billede agertoft Nybegynder
13. oktober 2005 - 15:53 #3
Har også prøvet bare med:
@mitFelt DECIMAL

Men det giver samme resultat.
Avatar billede agertoft Nybegynder
13. oktober 2005 - 15:54 #4
Glemte lige at fjerne kommaet efter DECIMAL(18,2). Har bare udeladt alt unødvendigt og glemte at fjerne kommaet :)
Avatar billede arne_v Ekspert
13. oktober 2005 - 17:59 #5
og hvordan kalder du den SP ?
Avatar billede agertoft Nybegynder
13. oktober 2005 - 18:17 #6
Gennem Query Analyzer... med 2.22 som værdi.
Avatar billede arne_v Ekspert
13. oktober 2005 - 18:35 #7
CREATE TABLE dectbl (decfld DECIMAL(18,2))
GO

CREATE PROCEDURE decsp(@decval    DECIMAL(18,2))
AS
INSERT INTO dectbl(decfld) VALUES(@decval)
GO

SELECT * FROM dectbl
GO

EXEC decsp 123.45
GO

EXEC decsp 678.90
GO

SELECT * FROM dectbl
GO

virker fint hos mig
Avatar billede arne_v Ekspert
13. oktober 2005 - 18:36 #8
1> CREATE TABLE dectbl (decfld DECIMAL(18,2))
2> GO
1>
2> CREATE PROCEDURE decsp(@decval    DECIMAL(18,2))
3> AS
4> INSERT INTO dectbl(decfld) VALUES(@decval)
5> GO
1>
2> SELECT * FROM dectbl
3> GO
decfld
--------------------

(0 rows affected)
1>
2> EXEC decsp 123.45
3> GO
(1 row affected)
1>
2> EXEC decsp 678.90
3> GO
(1 row affected)
1>
2> SELECT * FROM dectbl
3> GO
decfld
--------------------
              123.45
              678.90

(2 rows affected)
Avatar billede agertoft Nybegynder
14. oktober 2005 - 15:33 #9
Jeg ved ikke helt, hvad der skete, men da jeg prøvede her til morgen, virkede det igen. Smid et svar Arne, du skal have point for hjælpen alligevel... :)
Avatar billede arne_v Ekspert
14. oktober 2005 - 15:36 #10
ok
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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