نمایش نتایج 1 تا 9 از 9

نام تاپیک: بدست آوردن لیست تمام جداول موجود در سرور

  1. #1
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727

    بدست آوردن لیست تمام جداول موجود در سرور

    با سلام
    میخواستم ببینم چطوری میشه لیست تمام جداول موجود در سرور رو بدست آورد، بعدش من میخوام با جدول sys.databases جوین (join) کنم.

  2. #2
    کاربر دائمی آواتار MShirzadi
    تاریخ عضویت
    آذر 1385
    محل زندگی
    تهران
    پست
    325
    منظور شما بدست آوردن جدول مربوط به تمام DB های Server و تمام SysDB های آن هست یا ...

  3. #3
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    منظورم به دست آوردن تمام جداول موجود در سرور هست، یعنی تمام جداول موجود در تمام دیتابیس ها

  4. #4
    شما میتونی از جدول sysobjects تمامی جداول رو بدست بیاری.

  5. #5
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    شما میتونی از جدول sysobjects تمامی جداول رو بدست بیاری.
    ممنون، ولی این جدول هم فقط object های درون دیتاببیس جاری رو نشون میده، من کل جداول موجود در Sql server رو میخوام.

  6. #6
    کاربر دائمی آواتار Kamyar.Kimiyabeigi
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    1,276
    اسم تمام database ها رومیتونین از syscursortables بدست بیارین (البته داخل master هست)
    و با استفاده از اون و use کردن هر کدام از طریق INFORMATION_SCHEMA.TABLES اطلاعات مورد نظرتون رو بدست بیارین

  7. #7
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    دوستان، مشکل لیست کردن جداول کل سرور حل شد با این دستورات :
    exec sp_msforeachdb 'use ? select * from information_schema.tables'

    و یا این دستور :
    exec sp_msforeachdb @command1 = 'SELECT * FROM ?.INFORMATION_SCHEMA.TABLES'

    منتها چطور میشه نتایج این qury رو با هم union کرد ؟(چون جداول مربوط به هر دیتابیس رو در یک جدول لیست نمیکنه)

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629
    نقل قول نوشته شده توسط hdv212 مشاهده تاپیک
    دوستان، مشکل لیست کردن جداول کل سرور حل شد با این دستورات :
    exec sp_msforeachdb 'use ? select * from information_schema.tables'

    و یا این دستور :
    exec sp_msforeachdb @command1 = 'SELECT * FROM ?.INFORMATION_SCHEMA.TABLES'

    منتها چطور میشه نتایج این qury رو با هم union کرد ؟(چون جداول مربوط به هر دیتابیس رو در یک جدول لیست نمیکنه)
    با سلام
    از این کد استفاده کنید:

    SELECT top 1 * INTO #Temp FROM master.INFORMATION_SCHEMA.TABLES
    DELETE FROM #Temp
    exec sp_msforeachdb @command1 = 'INSERT INTO #Temp SELECT * FROM ?.INFORMATION_SCHEMA.TABLES'
    SELECT * FROM #Temp


    صبا صبوحى

  9. #9
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    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

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •