我正在從事一個項目,我需要將數據從一個數據庫傳輸到另一個數據庫(通過一些小的轉換)。當我打到我的第一個時間戳列時,一切都很順利......SQL Server 2K - 爲時間戳列插入顯式值?
看來SQL Server不希望我爲這種類型的列使用顯式值,而是想要生成它自己的列。
如果有辦法,使用T-SQL,我可以從一個表到另一個表中獲取這些數據?
我正在從事一個項目,我需要將數據從一個數據庫傳輸到另一個數據庫(通過一些小的轉換)。當我打到我的第一個時間戳列時,一切都很順利......SQL Server 2K - 爲時間戳列插入顯式值?
看來SQL Server不希望我爲這種類型的列使用顯式值,而是想要生成它自己的列。
如果有辦法,使用T-SQL,我可以從一個表到另一個表中獲取這些數據?
注意:名稱時間戳已被棄用,新的(更準確的)名稱是rowversion。
兩個答案:
號:類型rowversion的SQL服務器列總是會產生和由數據庫服務器設置。
是:如果在目標表中使用不同的數據類型。從rowversion列讀取的值可以存儲在varbinary列中。所以你可以在新表中創建一個varbinary列來保存舊錶中的值。當然,前進這個varbinary列不會像rowversion列那樣自動更新。
號
我剛剛用一個着名的數據比較工具進行了檢查,它說它可以比較它們但不能同步它們。
我不擔心源數據庫與目標數據庫之間的列內容不同。
我假設「數據」你幾乎意味着實際業務用戶需要或想要的東西。
timestamp列(或行版本或其他)是內部控制數據,不應將任何值傳遞給業務用戶。
它被/與TSEQUALS()函數一起使用以確定在讀取和更新之間行是否已經改變。將所有列添加到where子句的捷徑。
@標記這不完全是因爲用例不同。 OP想要遷移現有數據,而不是簡單地將任意數據插入到時間戳字段中。這是一個有效的問題。 – MDCore 2014-05-29 16:54:02