2016-05-13 83 views
0

我在SQL Server 2008 R2中工作,並且有一個生產表,我需要在另一個位置完全複製才能工作。我將首先運行一項工作來移動所有內容(一旦關閉),然後每天運行一次作業以更新每日更新/插入內容。如何創建具有時間戳記值的記錄的副本

日常工作將查看生產表並查找需要插入的任何新值(基於創建的日期),並查找需要更新的任何現有值(基於修改日期)。任何新值都是插入,任何修改值都是更新。

作業從生產表中拉出這些行並將它們應用到位於其他位置的複製表。我遇到了時間戳列的問題。生產表有一個時間戳列,我不知道在更新副本表(也創建爲時間戳列)時應如何處理。

如果我設置了production.timestamp_col = copytable.timestamp_col(無法更新時間戳列),則會出現錯誤。

我是否應該將其忽略(在這種情況下,我沒有表格的精確副本),將副本表&中的列轉換爲其他值(不確定是什麼) ),把我自己的價值(再次,將不會有一個確切的副本的表)或每次刪除/截斷和重新創建(由於數據量低效率)?

在這種情況下最好的方法是什麼?

感謝

+0

要在預定的基礎上覆制數據,最好的解決方案可能是複製。那是你提到的「工作」。現在是時間戳。將時間戳看作該行的GUID。它在所有的宇宙中唯一標記該行;-)這就是在一個表上只能有一個時間戳列的原因。所以不,你不能有兩個具有相同時間戳值的行。這在一些複製場景中很有用。 – shadow

回答

0

您可以將目標時間戳列轉換爲varbinary(8),然後插入值。這將幫助您創建一個確切的副本,但它會打破時間戳功能。如果您只需要一個副本,請執行此操作。 timestamp列的實際用途是通過版本控制來跟蹤對某一行的更改。