Avatar billede daddo Nybegynder
29. december 2010 - 19:46 Der er 4 kommentarer

Felt må ikke bliver under 0

Hej, Jeg har et lille problem

Jeg har et felt "bestilt" (tinyint) som jeg skal opdatere, men det må ikke bliver under 0.

Kan man tilføje noget det denne sql string så "bestil" ikke kan blive nagativ ???

UPDATE dbo.vare SET bestilt=bestilt-"& pluslager &" WHERE vareid=" & rs("vareid")


MS SQL 2000
Avatar billede arne_v Ekspert
29. december 2010 - 19:55 #1
Du kunne lave en INSERT trigger som testede på det.

Ellers:

UPDATE dbo.vare SET bestilt=bestilt-"& pluslager &" WHERE vareid=" & rs("vareid") & " AND bestilt-"& pluslager & " >= 0"

og test på antal rækker opdateret.
Avatar billede wagner Nybegynder
30. december 2010 - 00:22 #2
En anden (og efter min mening bedre) mulighed er en constraint på feltet, hvis du har mulighed for dette. Så skal du ikke ændre de sql kald til tabellen, som allerede eksisterer.

Du kan læse mere om check constraints her.
http://articles.techrepublic.com.com/5100-10878_11-6164469.html?tag=leftCol;articleText

Wagner
Avatar billede arne_v Ekspert
30. december 2010 - 00:36 #3
Langt bedre.

Jeg troede faktisk ikke at 2000 havde nogen muligheder for den slags, men et hurtigt kig i docs siger at det har den.
Avatar billede janus_007 Nybegynder
30. december 2010 - 21:50 #4
Det er ikke nødvendigt med trigger eller constraint, en tinyint kan kun være positiv :)

0-255

Nemt ik :)
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