5

'dan daha büyük olamaz. Bir sütundaki değerlerin sonraki sütundan daha büyük olamayacağı bir tablo oluşturmaya çalışıyorum. Örneğin, aşağıdaki tabloyu oluşturuyorum.Bir sütunun değerleri başka bir

CREATE TABLE Price (
    PriceID INT PRIMARY KEY IDENTITY (1,1), 
    OriginalPrice FLOAT NOT NULL, 
    CurrentPrice FLOAT NOT NULL, 
    Discount FLOAT, 
    ShippingCost FLOAT NOT NULL, 
    Tax FLOAT NOT NULL); 

Ve Geçerli Fiyat, OriginalPrice'den büyük olamaz.

yüzden yapıyor çalıştı Ne

CurrentPrice FLOAT CHECK (CurrentPrice <= OriginalPrice) NOT NULL, 

oldu Ama bu bana aşağıdaki hata veriyor:

Msg 8141, Level 16, State 0, Line 1 
Column CHECK constraint for column 'CurrentPrice' references another column, table 'Price'. 
Msg 1750, Level 16, State 0, Line 1 
Could not create constraint. See previous errors. 

aynı tablodaki bir sütuna başvuru için izin yok mu?

cevap

8

Sadece bir sütun kısıtlaması yerine tablo düzeyinde bir kısıtlamaya değiştirin.

Ayrıca, örn.

ALTER TABLE Price ADD CHECK (CurrentPrice <= OriginalPrice); 
--or 
ALTER TABLE Price ADD CONSTRAINT CK_Price_Current_vs_Original 
    CHECK (CurrentPrice <= OriginalPrice);