2011-01-02 16 views
0
CREATE TABLE Post 
(
    postID - PK 
    memberID 
    title 
    thread 
    . 
    . 
    . 
    reported    int DEFAULT 0, 
    dateCreated   datetime DEFAULT GetDate() NOT NULL 
); 

Ich möchte eine gespeicherte Prozedur schreiben, die das Feld "reported" jedes Mal um 1 erhöht, wenn ich die Prozedur ausführe. Irgendeine Idee?Einfache gespeicherte Prozedur schreiben

Antwort

4

Wie wäre:

CREATE PROCEDURE dbo.UpdateReported(@PostID INT) 
AS BEGIN 
    UPDATE dbo.Post 
    SET Reported = Reported + 1 
    WHERE PostID = @PostID 
END 

Sie können dann die gespeicherte Prozedur aufrufen mit:

EXEC dbo.UpdateReported @PostID = 5 

oder übergeben, was PostID Sie aktualisieren möchten ...

0
UPDATE Post SET reported = (reported + 1) 
+0

Dies würde aktualisieren der gesamte Datensatz. – HLGEM

+0

@HLGEM, durch das Lesen der OP-Frage hatte ich den Eindruck, dass dies das ist, wonach er sucht: 'Ich möchte eine gespeicherte Prozedur schreiben, die das" gemeldete "Feld um 1 erhöhen würde. Er erwähnt nichts über die Erhöhung des gemeldeten Feldes um 1 für eine bestimmte Aufzeichnung oder verpasse ich etwas? –