2

Apartmentテーブル (列 と を含む) とテーブル (列FloorNumBuildingID含む)ApartmentBuildingを持つ SQL Server データベースがありますNumFloorsApartment.FloorNumより大きいことを確認するために (SQL Server UI を使用して) 制約を設定する方法はありますApartmentBuilding.NumFloorsか?

私はこれを試しました:

FloorNum > ApartmentBuilding.NumFloors

しかし、どうにかして の列を結合する必要があることに気付きましたがBuildingID、制約内でそれを行う方法がわかりません。

ご協力いただきありがとうございます!

4

2 に答える 2

3

別のテーブルからのデータが必要なため、CHECK CONSTRAINT でこれを行うことはできません。これはINSERT/UPDATE トリガーで処理します。

于 2010-05-05T20:10:27.910 に答える
0
  1. ApartmentBuilding テーブルで、UNIQUE 制約 on(BuildingID, NumFloors) を追加します。
  2. Apartment テーブルに、列 NumFloorsInBuilding を追加します。
  3. Apartment テーブルで、(BuildingID, NumFloors) を参照する (BuildingID, NumFloorsInBuilding) に外部キーを追加します。これにより、NumFloorsInBuilding が親テーブルの NumFloors と常に等しいことが保証されます。
  4. Apartment テーブルに、CHECK(FloorNum < NumFloorsInBuilding) を追加します。
于 2010-05-05T20:54:47.447 に答える