Ich arbeite an einer SQL Server 2008-Datenbank. Diese Datenbank hat zwei Tabellen.Mischen einer IF-Anweisung in einer UPDATE-Anweisung in SQL
Book
ID
BookCategoryID
Name
IsFlagged
BookCategory
ID
Name
IsFlagged
Ich brauche die BookCategory Tabelle zu aktualisieren, so dass, wenn alle Bücher in einer Kategorie gekennzeichnet sind, die IsFlagged Eigenschaft auf dem BookCategory Datensatz auf true gesetzt ist. Andernfalls, wenn keine Bücher in einer Kategorie vorhanden sind, die markiert sind, muss ich die IsFlagged-Eigenschaft für den BookCategory-Datensatz auf false festlegen. Gibt es eine Möglichkeit, dies zu tun? Ich kann es nicht herausfinden. Ich habe etwas wie das Folgende versucht, bin aber immer wieder in eine Sackgasse geraten.
UPDATE
BookCategory
SET
IsFlagged = (SELECT COUNT(*) FROM Book WHERE [IsFlagged]=1 AND [BookCategory]=?)
Aus Neugier würde, sobald das Update jedes BookCategory Datensatz oder wäre es einmal aktualisieren für jedes Buch in der Kategorie Liste steht? IE die gleiche BookCategory mehrmals aktualisieren – msmucker0527
Sie sollten wahrscheinlich angeben, dass dies SQL Server-spezifische Syntax ist. Ich glaube nicht, dass andere RDBMS "UPDATE ... FROM" unterstützen, aber ich bin nicht positiv. – JNK
@JNK Sie haben Recht, ich glaube nicht, dass andere RBDMS es unterstützen ... aber das OP spezifiziert SQL Server in der Frage ... –