2012-03-03 64 views
2

我需要設置最大行數SQL Server Compact 3.5數據庫表:數據庫由一些表組成並且每個表應具有不同的最大行數。如何在SQL Server表中設置最大行數?

如果答案是肯定的,當表格滿了時默認的規則是什麼?我可以設置自定義規則嗎(例如,我會刪除最少爲ID的行,其中ID是一列)?

+3

這是一個非常罕見的內置於RDBMS中的功能......您可能只需用count()等手動執行此操作; nosql通常更直接地支持這種類型的事情(例如redis上的LTRIM),但是它是一個不同的範例 – 2012-03-03 18:58:36

+0

+1,我很想知道爲什麼你需要最大數量的行,這是一個不尋常的請求,靜態表。 – Ben 2012-03-03 19:06:23

+0

@Ben:我想控制數據庫文件的大小。 – enzom83 2012-03-03 20:06:41

回答

1

沒有觸發器,你可以有一列整數1到最大行#的表,然後在表中,只允許max行#定義具有UNIQUE約束的行號列和指向具有1到max行#的表的外鍵約束。您需要處理將下一行數保持在正確的值,並且一旦到達最大行#,您將需要編寫代碼來處理外鍵約束異常。顯然,這是一個非常大的黑客攻擊,並不會很好維護。

1

恕我直言,答案是否定的 - SQL Server沒有你要求的配置選項。

有了SQL Server版本支持觸發器,你可以達到你想要BEFORE INSERT觸發器(每桌一個)......任何你需要爲「滿桌子」情況的規則將允許執行什麼...

由於SQL Server Compact不支持觸發器,我沒有看到一種方法來實現你所要求的...