2011-12-15 77 views
0

我有一些表格,在一個過程中的一些最後步驟後,不會被修改。用於驗證的Sybase哈希+ convert(varchar,...)?

爲了驗證它沒有做任何修改(在最終狀態之後)我正在考慮製作所有列的散列。因此,對於每一行我:

  1. 做一個varchar將所有列(其他數據類型轉換);
  2. 保存散列結果

今後,爲了驗證,我只是再做一次哈希和先前得到的結果進行比較。


有沒有更好的方法來做到這一點?

如果不是,將所述其他數據類型時爲varchar,我應該使用convert(varchar, ...)或取決於數據的類型我應該定義一個長度到varchar

回答

1

就個人而言,如果我採取了這種方法,我會使用時間戳字段而不是散列。這將自動更新任何發生在該行上的事情,並且比您描述的更容易。

驗證方法與您在問題中描述的類似。爲了使審計更容易,您可以使用觸發器將時間戳記值存儲到另一個表中。

或...說到觸發器。如果您的真正意圖是完全阻止更新,則可以使用觸發器完全取消更新(除非它滿足您設置的特定要求)。

這都假設你有一個理由,不僅僅是通過撤消所有用戶的更新/刪除權限來鎖定桌面上的權限。 (這將是最簡單的)。

+0

humm,驗證如何工作?我是否需要將時間戳字段放在另一個表中,然後比較兩者?還是有另一種方式? – 2011-12-16 00:07:19