Ditt första felhanteringsskript
Du märker att tabellen products saknar en begränsning (constraint) för att kontrollera värdena i kolumnen stock. Det är rimligt att lagersaldot alltid ska vara större än eller lika med 0.
Av någon anledning finns ett felaktigt värde i följande rad – lagersaldot är -1!
| product_id | product_name | stock | price |
|------------|--------------|-------|-------|
| 6 | Trek Neko+ | -1 | 2799 |
Du vill skriva ett skript som lägger till en begränsning i tabellen products, så att endast lagersaldon större än eller lika med 0 tillåts.
Om du lägger till den här begränsningen kommer körningen att misslyckas, eftersom det finns en rad där lagersaldot är -1.
Hur förbereder du skriptet?
Den här övningen är en del av kursen
Transaktioner och felhantering i SQL Server
Övningsinstruktioner
- Omge begränsningen med ett
TRY-block. - Lägg till begränsningen i tabellen
products. - Omge felmeddelandet med ett
CATCH-block.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
-- Set up the TRY block
BEGIN ___
-- Add the constraint
ALTER TABLE ___
ADD CONSTRAINT CHK_Stock CHECK (stock >= 0);
___ ___
-- Set up the CATCH block
___ ___
SELECT 'An error occurred!';
END ___