Re: [SQL ] SQL SERVER 2005 新增修改時間的問題

看板Database作者 (flak)時間18年前 (2007/07/10 12:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/6 (看更多)
※ 引述《taikobo (有比扯鈴扯嗎?)》之銘言: : 但的確可以在每次UPDATE時,依照判斷條件ID去更新我的UPDATE_DATE的時間 : 不過用了以後發現這個東西...只是把判斷程式寫在SQL Server上 : 感覺跟寫程式UPDATE時把UPDATE_DATE欄位帶入GETDATE()是同一個意思吧? 所以...我後來也都直接在更新式子裡面寫 ^^||| 這樣有一個好處,是我會順便把更新者的UserID寫到資料行中 可以知道最後一次的更改者是誰 寫Trigger也是有好處啦,至少你不用擔心每一支程式有沒有忘記更新時間 Trigger主要的缺點是鎖定程度太強,資料量大時很容易把相關資料表都鎖死 所以我不喜歡用。不過如果你的資料表不是幾十萬筆以上的話,大概不用 考慮這點 : 其中的差別只是寫在SQL Server上還是程式裡而已...@@ : 另外感謝grence兄提供方法,可惜在下資質駑鈍 : 我實在看不懂...慚愧;但還是感謝你的幫助^^ 他的作法是建立欄位時,把資料型態就直接設成timestamp 這個欄位會是一個二進位資料,但每次資料行異動時,就會跟著變動 但問題是.... 「SQL Server timestamp 資料類型只處理時間或日期。SQL Server timestamp 值是二 進位數字,指出資料庫中發生資料修改的相對順序。實作 timestamp 資料類型原先是 為了支援 SQL Server 復原的演算法。每次有分頁被修改時,就會以目前的 @@DBTS 值 加上戳記,而 @@DBTS 會累加 1。這對復原來說已經足夠判斷分頁修改的相對順序,但 是 timestamp 值與時間沒有關係。 」 所以這個值是相對於整個資料庫的分頁變動「次數」,與時間沒有關係 : slalala兄說的current_timestamp我是用在建立表單的時候 : 因為我有二個欄位記錄時間 : 一個是CREATION_DATE(建立時間),一個是UPDATE_DATE(更新時間) : 建立時的屬性有用到current_timestamp: : CREATION_DATE DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP : 在建立的時候的確能精準的自動放進伺服器的系統時間 : UPDATE_DATE欄位在建立的時候當然跟CREATION_DATE欄位的資料相同 : 但是我的問題是希望在UPDATE的時候 : UPDATE_DATE能自動更新時間...可惜CURRENT_TIMESTAMP好像不行 因為這是放在Default值,所以只有Insert時會自動填入了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.75.72
文章代碼(AID): #16amLJah (Database)
討論串 (同標題文章)
文章代碼(AID): #16amLJah (Database)