اسکریپت جستجوی جداول با عبارتی مشخص در نام
با اسکریپت جستجوی جداول با عبارتی مشخص در نام میتوانید جداولی را که عبارت مشخصی در نام آنها وجود دارد،بهسرعت جستجو کنید
26 شهریور 1405
لینک کوتاه
اسکریپت جستجوی جداول با عبارتی مشخص در نام
در پروژههای SQL Server معمولاً تعداد جداول دیتابیس زیاد است و پیدا کردن جدول موردنظر با جستجوی دستی میتواند زمانبر باشد.یکی از روشهای کاربردی، جستجوی جدولهایی است که نام آنها شامل یک عبارت مشخص است.
اسکریپت اصلی
DECLARE @SearchText NVARCHAR(100) = N'Customer';
SELECT
TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND TABLE_NAME LIKE N'%' + @SearchText + N'%'
ORDER BY TABLE_SCHEMA, TABLE_NAME;
در این اسکریپت متغیر @SearchText عبارتی است که قصد داریم در نام جداول جستجو کنیم. برای مثال، اگر مقدار آن Customer باشد، تمام جدولهایی که عبارت Customer در نام آنها وجود دارد نمایش داده میشوند.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!

استفاده از sys.tables
روش دیگری که در SQL Server بسیار رایج است، استفاده از sys.tables و sys.schemas است:DECLARE @SearchText NVARCHAR(100) = N'Customer';
SELECT
s.name AS SchemaName,
t.name AS TableName
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.schema_id = s.schema_id
WHERE t.name LIKE N'%' + @SearchText + N'%'
ORDER BY s.name, t.name;
این روش مستقیماً از کاتالوگ سیستمی SQL Server استفاده میکند و برای کارهای مدیریتی و اسکریپتنویسی بسیار کاربردی است.
جستجوی دقیقتر جداول با عبارتی مشخص در نام
اگر بخواهیم فقط جدولهایی را پیدا کنیم که با یک عبارت مشخص شروع میشوند، میتوانیم از این الگو استفاده کنیم:WHERE t.name LIKE @SearchText + N'%'
و اگر بخواهیم نام جدول با عبارت مشخصی تمام شود:
WHERE t.name LIKE N'%' + @SearchText
تفاوت این سه حالت مهم است:
'%Customer%' → عبارت در هر قسمت نام جدول باشد.
'Customer%' → نام جدول با عبارت شروع شود.
'%Customer' → نام جدول با عبارت تمام شود.
مثال کاربردی اسکریپت جستجوی جداول با عبارتی مشخص در نام
فرض کنید در دیتابیس خود جدولهایی مانند موارد زیر داریم:Customer
CustomerAddress
CustomerOrders
Product
ProductCategory
OrderDetails
اگر مقدار متغیر را به شکل زیر تعیین کنیم:
DECLARE @SearchText NVARCHAR(100) = N'Customer';
نتیجه شامل جدولهایی مانند:Customer
CustomerAddress
CustomerOrders
خواهد بود.
کاربرد اسکریپت جستجوی جداول با عبارتی مشخص در نام
اسکریپت جستجوی جداول با عبارت مشخص زمانی کاربرد دارد که دیتابیس دارای تعداد زیادی جدول باشد و پیدا کردن جدول موردنظر بهصورت دستی زمان زیادی ببرد.با استفاده از این اسکریپت میتوان بخشی از نام جدول را جستجو کرد و تمام جدولهایی را که آن عبارت را در نام خود دارند، بهسرعت پیدا کرد.
برای مثال، فرض کنید در یک سیستم فروشگاهی جدولهایی مانند Invoice، InvoiceDetails، InvoiceItems و InvoiceHistory وجود داشته باشد.
اگر بخواهیم تمام جدولهای مرتبط با فاکتورها را پیدا کنیم، کافی است عبارت Invoice را جستجو کنیم تا این جدولها در نتیجه نمایش داده شوند.
این قابلیت در شناخت ساختار دیتابیس، عیبیابی پروژه، بررسی جدولهای مرتبط با یک بخش نرمافزار و مدیریت دیتابیسهای بزرگ بسیار مفید است.
همچنین هنگام کار با پروژههای قدیمی که مستندات کاملی ندارند، میتوان با جستجوی نام جدولها سریعتر ساختار دیتابیس را بررسی و جدولهای مرتبط را شناسایی کرد.
جمعبندی
جستجوی جداول بر اساس عبارتی که در نام آنها قرار دارد، یکی از کارهای ساده اما کاربردی در SQL Server است. استفاده از sys.tables همراه با sys.schemas امکان کنترل مناسبتری روی اطلاعات جداول فراهم میکند و با تغییر الگوی LIKE میتوان جستجو را به حالتهای مختلف مانند شروعشدن، پایانیافتن یا وجود عبارت در هر قسمت نام محدود کرد.


کاربران ما
شما هم نظرتون با ما دریاره “اسکریپت جستجوی جداول با عبارتی مشخص در نام” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید