CREATE TABLE SupplierQuote
(
supplierQuoteID int identity (3504,2) CONSTRAINT supquoteid_pk PRIMARY KEY,
PONumber int identity (9553,20) NOT NULL
.
.
.
CONSTRAINT ponumber_uq UNIQUE(PONumber)
);
上述DDL產生一個錯誤:如何自動遞增非主鍵? - SQL服務器
Msg 2744, Level 16, State 2, Line 1 Multiple identity columns specified for table 'SupplierQuote'. Only one identity column per table is allowed.
我該如何解決呢?我想讓PONumber自動遞增。
問題是當supplierQuoteID記錄被刪除時,父表中的purchaseOrder將無用。因此,我將不得不寫一個觸發器或以此來擦除父購買訂單記錄。我決定通過使用隨機發生器等從前端手動插入PONumber。 – user311509 2010-04-08 16:18:16
如果您想確保PONumbers是唯一的,我不會使用隨機數字生成器。我會使用Guid.NewGuid()。確保數據庫唯一性的兩個最簡單的方法是使用身份或GUID。 – 2010-04-08 16:22:03
您也可以級聯刪除 - 當您刪除supplierQuote時,只要設置刪除級聯到關聯的PurchaseOrder記錄,只要它與任何其他SupplierQuote沒有關聯即可。 – 2010-04-08 16:23:02