برای مقایسه اطلاعات دو جدول راههای زیادی وجود دارد. یکی از این روشها را در اینجا شرح دادم. اما اگر بخواهیم پس از مقایسه اطلاعات دو جدول آنها را دقیقا مشابه هم کنیم، باید از کوئریهای پیچیده جهت انتقال اطلاعات و یکسان سازی استفاده کنیم.
برای حل این مسئله روش بهتر و سادهتری نیز وجود دارد. TableDiff این امکان را برای ما فراهم میکند که بتوانیم رکوردهای دو جدول را با هم مقایسه و مطابق کنیم. در واقع TableDiff با مقایسهی تمامی رکوردهای جدول A با تمامی رکوردهای جدول B اختلافات را شناسایی ذخیره میکند.
جهت استفاده از TableDiff مراحل زیر را انجام دهید.
۱- ابتدا باید از نصب بودن TableDiff در SQL اطمینان حاصل کنیم. برای اینکار به آدرس C:\Program Files\Microsoft SQL Server\100\COM\ رفته تا فایل tablediff.exe را مشاهده کنید.
۲- فعال کردن دسترسی به تابع xp_cmdshell.
اجرای دستورات tablediff از طریق تابع xp_cmdshell امکان پذیر است. برای فعال کردن این تابع از دستور زیر استفاده کنید.
EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO |
۳- دو جدول مشابه با نامهای A و B در یک بانک اطلاعاتی به نام Shop ایجاد کنید. در جدول A چند سطر رکورد وارد کنید.
دقت داشته باشید که این جداول حتما باید فیلدهای یکسان داشته باشند.
۴- با اجرای کوئری زیر دو جدول A و B با هم مقایسه میشوند و نتیجهی آن در فایل Result.sql در درایو C ذخیره میشود.
exec master..xp_cmdshell'"C:\Program Files\Microsoft SQL Server\100\COM\tablediff.exe" -sourceserver (local) -sourcedatabase Shop -sourcetable A -destinationserver (local) -destinationdatabase Shop -destinationtable B -f C:\ Result.sql' |
۵- با اجرای کوئری ساخته شده در فایل Result.sql اطلاعات جدول B همانند اطلاعات جدول A خواهد شد.
با سلام
مطالب وبلاگ شما بسیار مفید و کاربردی است.
با تشکر