یک مورد استفاده کاربردی، از رویه sp_MSforeachtable به هنگام تجمیع بانکهای اطلاعاتی است (برای مثال تجمیع دو DB کوچک در یک DB بزرگتر). برای این منظور میتوان در ابتدا تمامی Constraintهای جداول را موقتاً غیر فعال کرد، عملیات Load داده در جداول را انجام داد و مجدداً آنها را فعال نمود.
چنانچه از SSIS Package برای اینکار استفاده شود، با فرض اینکه در مرحله قبل Schema تمامی اشیاء بانک منتقل شده است، Control Flow این Package شامل Stepهای زیر میباشد:
گام اول - غیر فعال کردن تمامی Constraintهای جداول
برای این منظور از Object موسوم به Execute SQL Task به این صورت استفاده میشود که در بخش SQL Statement دستور زیر نوشته شود:
گام دوم - انتقال دادهها به شکل Data Only
برای این منظور از Object موسوم به Transfer SQL Server Objects Task به صورت زیر استفاده میشود :
در بخش Object تغییرات زیر اعمال شود:
- در قسمت Destination ، پروپرتی CopyData با مقدار True و ExistingData با مقدار Append تنظیم شود.
- در قسمت Destination Copy & Option ، پروپرتی CopyAllTables در بخش ObjectsToCopy با مقدارTrue تنظیم شود.
گام سوم - فعال کردن مجدد Constraintهای جداول
برای این منظور از Object موسوم به Execute SQL Task به صورت زیر استفاده میشود :
در بخش SQL Statement دستور زیر نوشته شود:
نکته: در صورت وجود Trigger برای جداول بانک اطلاعاتی نیز میتوان به همین شکل عمل نمود. (ابتدا آنها را غیر فعال و مجدا فعال کرد)
چنانچه از SSIS Package برای اینکار استفاده شود، با فرض اینکه در مرحله قبل Schema تمامی اشیاء بانک منتقل شده است، Control Flow این Package شامل Stepهای زیر میباشد:
گام اول - غیر فعال کردن تمامی Constraintهای جداول
برای این منظور از Object موسوم به Execute SQL Task به این صورت استفاده میشود که در بخش SQL Statement دستور زیر نوشته شود:
exec sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
برای این منظور از Object موسوم به Transfer SQL Server Objects Task به صورت زیر استفاده میشود :
در بخش Object تغییرات زیر اعمال شود:
- در قسمت Destination ، پروپرتی CopyData با مقدار True و ExistingData با مقدار Append تنظیم شود.
- در قسمت Destination Copy & Option ، پروپرتی CopyAllTables در بخش ObjectsToCopy با مقدارTrue تنظیم شود.
گام سوم - فعال کردن مجدد Constraintهای جداول
برای این منظور از Object موسوم به Execute SQL Task به صورت زیر استفاده میشود :
در بخش SQL Statement دستور زیر نوشته شود:
exec sp_MSforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
برای مثال شکل SSIS Package فوق به صورت تصویر فوق است.