SSMAのタイムスタンプ。 、どのようにそれが使用されているため、それは何ですか?
-
20-09-2019 - |
質問
私はrencently私がインポートされたテーブルの数がSSMA_timestampと呼ばれる新しい列とammendedされていることに気づいたのSQL Server 2005にデータベースをインポートするには、SQL Serverへの移行アシスタントを使用していました。
誰もが、これは何のためにあるのか、それがどのように使用されるかを教えてもらえます?
解決
私は、移行アシスタントが移行中にデータへの変更を検出できるように、これが生成されると考えています。
あなたは(その場合にはサイモンの答えを参照)を使用すると、SQL Serverに移行した。この特定のデータベースのフロントエンドとしてAccessを使用し続けている場合を除き、、私は、移行が完了した後、彼らは何のために使用されるとは思いませんそれはあなたがすべてが行われていることを確認しているいったんこれらの新しい列を削除しても安全である必要があります。
他のヒント
追加SSMA_timestamp列のみ移行時には使用されません。彼らは、実際にアクセスがSQL Serverにリンクされたテーブル内のレコードを更新するときのエラーを回避するのに役立ちます。だから、あなたはまだ移行SQL ServerデータベースにリンクされているAccessフロントエンドを使用している場合、それはSSMA_timestamp列を落とさないことが最善でしょう。
SQL ServerのへのリンクMSDNの記事最適化のMicrosoft Office AccessのアプリケーションからA>:
同時実行チェックをサポートする
おそらくOffice Accessの連結テーブルの更新可能性の問題の主要な原因は、Office Accessのは、サーバー上のデータが更新されているダイナセットで最後に取得したものと一致するかどうかを確認することができないということです。オフィスへのアクセスは、この検証を実行できない場合、それはサーバの行が変更または別のユーザによって削除されたと仮定し、それが更新を中止する。
Office Accessのは、一致する値のために確実にチェックすることができないデータにはいくつかの種類があります。これらは、さらに、SQL Server 2005で導入さntext型テキスト、画像、とvarchar(max)は、NVARCHAR(MAX)、およびVARBINARY(MAX)タイプ、例えば実などの浮動小数点数値型、などのラージ・オブジェクト・タイプを含みますフロートは、値が実際に変更されていない時にキャンセルのアップデートで、その結果、比較が不正確にする可能性のある問題を丸めの対象となっています。オフィスのアクセスもトラブルデフォルト値を持っており、null値が含まれていないビット列を含む表を更新しています。
これらの問題を解決するために迅速かつ簡単な方法は、SQL Server上のテーブルにタイムスタンプ列を追加することです。タイムスタンプ列のデータは、日付や時間とは全く無関係です。その代わりに、データベース全体で一意であることを、自動的に新しい値がテーブル内の任意の列に割り当てられているすべての時間を増やすことが保証されたバイナリ値です。列のこのタイプのためのANSI標準語はrowversionです。この用語は、SQL Serverでサポートされています。
テーブルは列のこのタイプが含まれており、すべてのUPDATEのWHERE句でそれを使用し、そのテーブルに影響を与える文を削除すると、オフィスのアクセスが自動的に検出します。これは、他のすべての列がまだダイナセットが最後にリフレッシュされたとき、彼らが持っていた同じ値を持っていることを検証するよりも効率的です。
Office AccessのためのSQL ServerのMigration Assistantが自動的に更新可能性に影響を与える可能性がデータ型を含む任意のテーブルにSSMA_TimeStampという名前の列を追加します。