با سلام
میخواستم ببینم چطوری میشه لیست تمام جداول موجود در سرور رو بدست آورد، بعدش من میخوام با جدول sys.databases جوین (join) کنم.
Printable View
با سلام
میخواستم ببینم چطوری میشه لیست تمام جداول موجود در سرور رو بدست آورد، بعدش من میخوام با جدول sys.databases جوین (join) کنم.
منظور شما بدست آوردن جدول مربوط به تمام DB های Server و تمام SysDB های آن هست یا ...
منظورم به دست آوردن تمام جداول موجود در سرور هست، یعنی تمام جداول موجود در تمام دیتابیس ها
شما میتونی از جدول sysobjects تمامی جداول رو بدست بیاری.
ممنون، ولی این جدول هم فقط object های درون دیتاببیس جاری رو نشون میده، من کل جداول موجود در Sql server رو میخوام.نقل قول:
شما میتونی از جدول sysobjects تمامی جداول رو بدست بیاری.
اسم تمام database ها رومیتونین از syscursortables بدست بیارین (البته داخل master هست)
و با استفاده از اون و use کردن هر کدام از طریق INFORMATION_SCHEMA.TABLES اطلاعات مورد نظرتون رو بدست بیارین
دوستان، مشکل لیست کردن جداول کل سرور حل شد با این دستورات :
exec sp_msforeachdb 'use ? select * from information_schema.tables'
و یا این دستور :
exec sp_msforeachdb @command1 = 'SELECT * FROM ?.INFORMATION_SCHEMA.TABLES'
منتها چطور میشه نتایج این qury رو با هم union کرد ؟(چون جداول مربوط به هر دیتابیس رو در یک جدول لیست نمیکنه)
SabaSabouhi جان مرسی
من با این کد مشکلم رو حل کردم :
CREATE TABLE #Stage
(
TABLE_CATALOG SYSNAME,
TABLE_SCHEMA SYSNAME,
TABLE_NAME SYSNAME,
TABLE_TYPE SYSNAME
)
INSERT #Stage
EXEC ('sp_msforeachdb ''SELECT * FROM ?.INFORMATION_SCHEMA.TABLES''')
SELECT *
FROM #Stage where table_type = 'BASE TABLE'
DROP TABLE #Stage