tgoop.com/sql_server/602
Last Update:
سلام خدمت دوستان عزیزم
امیدوارم حال شما هم عالی عالی عالی باشه ☺️☺️☺️
بعضی وقتها مشاهده کردم که نیاز بوده بر روی یک فیلد یکسان در جداول مختلف سرچ بشه و اگه مثلا در هرکدوم بود یک نتیجه ای بده و اگه در هیچ کدوم هم نبود یک نتیجه دیگه.
فرض کنید مثلا من 20 تا جدول دارم و یک فیلد UserId دارم و نیاز دارن که این فیلد UserId رو برای یک مقدار خاص تو کل این 20 تا جدول تست کنم.
یک راهش این هست که مثلا من بیام از sp_MsforeachTable استفاده کنیم.
راه دوم که خودم استفاده میکنم این هست که میام یک Union all از همه این جداول میسازم !! و در هر کدومش هم شرط میذارم و اون مقدار UserId رو تست می کنم.
برای ساخت این Union All هم میام با استفاده از ویوی سیستمی Information_Schema.Columns استفاده میکنم و رشته خودم رو تولید میکنم و اونو چک میکنم. در نهایت کل Union All ساخته شده رو در یک If Exists قرار میدم و مقادیر رو چک میکنم.
تفاوت روش من با Sp_MsforeachTable این هست که در روش اول ، یک کرسر ایجاد شده و به ازای هر جدول یک تراکنش اجرا میشه و مثلا اینجا 20 تا سلکت اجرا میشه و 20 تا تراکنش ایجاد میشه.
ولی در روش من یک سلکت ایجاد شده و یک بار اجرا میشه که نسبت به روش اول برتری داره.
امیدوارم لذت برده باشین.
شاد و پرانرژی باشید☺️☺️
حمیدرضا صادقیان
@Hamidreza_Sadeghian
BY SQL Server
Share with your friend now:
tgoop.com/sql_server/602
