アクセスとSQLサーバーの同様のスキーマテーブルの違いをチェックするためのテーブルの異なるユーティリティを作成しています。両方のデータベースに非常に多数のテーブルがあるため、それを達成するための最速の方法は何かを知りたいだけです。
私は2つのテーブルを比較しています。同じスキーマと同じ列定義と制約を持つアクセスとSQLの両方でtableXと言ってみましょう。テーブルには異なる行とタプルがあります。その違いを特定し、その違いを抽出したい
ありがとうスティーブ
アクセスとSQLサーバーの同様のスキーマテーブルの違いをチェックするためのテーブルの異なるユーティリティを作成しています。両方のデータベースに非常に多数のテーブルがあるため、それを達成するための最速の方法は何かを知りたいだけです。
私は2つのテーブルを比較しています。同じスキーマと同じ列定義と制約を持つアクセスとSQLの両方でtableXと言ってみましょう。テーブルには異なる行とタプルがあります。その違いを特定し、その違いを抽出したい
ありがとうスティーブ
残念ながら、2 つの異なるシステム間で非常に細かい違いが必要なように思えますが、これではあまり効率的ではありません。
テーブルがそれほど大きくない場合は、CSV にエクスポートし (結果の順序を確認してください!)、それらに対して diff コマンドを実行するのが最善の策かもしれません。
ms access データベースへのリンク サーバーを作成し、クエリを使用してテーブルを比較します。
EXEC sp_addlinkedserver @server = 'DBName'
, @provider = 'Microsoft.Jet.OLEDB.4.0'
, @srvproduct = 'OLE DB Provider for Jet'
, @datasrc = 'C:\myaccessdb.mdb'
このようなクエリを使用すると、2 つのテーブルを比較するのが最も簡単です
SELECT MIN(table_name), column1, column2, ...
FROM (
SELECT 'sql server table' , column1, column2, ...
FROM A
UNION ALL
SELECT 'msaccess table' , column1, column2, ...
FROM B) tmp
GROUP BY column1, column2, ...
HAVING COUNT(*) = 1
tablediff.exe
別のオプションは、Sql Server に付属のユーティリティに依存することです。msdn の詳細情報を参照してください
チェックする必要があるのがフィールド名と型だけである場合は、ADO が適している可能性があります: http://www.w3schools.com/ado/met_conn_openschema.asp。Access のフィールド タイプと SQL Server のフィールド タイプが完全に一致することはありません。