نمایش لیستی از دیتابیس های موجود در Sql Server با نام فارسی
میخواستم بدونم چطور میتوانیم لیستی از دیتابیس های Sql Server رو داشته باشیم برای استفاده و تولید کانکشن استرینگ داینامیک با توجه به این نکته که در کنار آن نام فارسی دیتابیس وجود داشته باشد ؟؟؟
برای مثال فرض شود در هر دیتابیس جدولی وجود دارد که در آن فیلدهای زیر موجود باشد :
- نام لاتین دیتابیس
- نام فارسی دیتابیس
- تاریخ شروع سال
- تاریخ اتمام
حال لیستی از دیتابیس ها نمایش داده شوند که در آن لیست این جدول هم در کنار آن نمایش داده شود !!!
لطفا راهنمایی بفرمایید
* ویرایش *
جهت توضیح کاملتر به تصاویر زیر توجه بفرمایید :
تصویر بالا جهت نمایش نتیجه
تصویر بالا جهت اطلاع از لیست دیتابیس ها
تصویر بالا جهت اینکه در هر دیتا بیس یک جدول با فیلدهای بالا موجود می باشد
نمایش لیست دیتابیس های موجود در Sql Server
ببینید در دیتابیس master یک جدول به نام databases وجود داره که شما هر دیتابیسی که در Sql Server ایجاد می کنید مشخصات و نام اون دیتابیس در این جدول ثبت و نگهداری میشه.
SELECT * FROM master.sys.databases
خروجی :
اما طبق توضیحات و تصاویری که شما ارسال کردید به نظر میاد از یک جدول که خود کاربر ایجاد کرده استفاده شده. یعنی یک جدول با فیلدهای مورد نیاز ایجاد شده و هر دیتابیسی که ایجاد شده اطلاعاتش رو در این جدول ثبت کردن و نمایش دادن.
دقت کنید 4 تا دیتابیس به صورت ثابت در همه Sql Server ها وجود داره که شما میتونید این 4 تا رو نمایش ندید :
Select * From master.sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');
توسط کد بالا فقط دیتابیس هایی که خودتون ایجاد کردید نمایش داده میشه.
ممنون از توضیحتون بله میدونم جداول موجود در Sql رو تا حد خوبی آشنایی دارم ، دقیقا درست متوجه شدید جدولی در هر دیتا بیس ایجاد شده و من میخوام لیست دیتابیس ها به همراه فیلدهای همون جدول که در هر دیتابیس ایجاد شده در یک کوئری کنار هم نمایش داده شوند ؟!
باتشکر از توجه شما
دوستان تقریبا پاسخ شما رو دادن اما اگر شما چند دیتابیس دارید که یک جدول مشترک درون همه اونها هست و میخواید اطلاعات اون جدول رو داشته باشید یکی از راه حل ها این هست که برای اون جدول یک schema اختصاصی ایجاد کنید. بعد از اون میتونید یک query از جداولی در دیتابیس بگیرید که اون schema رو دارن. به تصویر زیر دقت کنید :
در تصویر بالا dbo همون schema هست. شما میتونید هر schema دیگه ای هم تعریف کنید. مثلا میتونید داشته باشید :
Select * From myschema.Users
در مثال بالا myschema یک schema اختصاصی و جدید هست.
نمایش لیست همه جداول موجود در Sql Server در دیتابیس
خب حالا که در هر دیتابیس یک جدول با Schema اختصاصی دارید میتونید به صورت زیر لیست اونها رو داشته باشید و یا باهاشون کار کنید :
select *
from sys.tables
where schema_name(schema_id) = 'myschema' -- put your schema name here
order by name;
در دیتابیس master و جدول tables لیست همه جداول در Sql Server شما موجود هست.
ممنون از شما و دوستان
مهندس جان من خودم به این کوئری رسیدم ولی این یه مشکل گاهی برام ایجاد میکنه و اون اینه که اگر روی سیستمی در یک اینستنس دیتابیسی همنام یا شبیه نام دیتابیس ها من موجود باشه ولی در اون جدولی مانند جدول دیتابیس من وجود نداشته باشه کوئری با خطا مواجه میشه و کلا اجرا نمیشه .
CREATE TABLE #TempTable
(
DatabaseName VARCHAR(100),
TableName varchar(100),
List_of_Columns VARCHAR(100)
);
GO
INSERT INTO #TempTable
EXEC sp_MSforeachdb
'
USE [?]
DECLARE @DbName NVARCHAR(128);
SET @DbName = DB_NAME(DB_ID());
SELECT
@DbName AS DB,
[Name] AS Name,
(SELECT STRING_AGG(COLUMN_NAME,''\'') AS List_of_Columns
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ''TblSetting''
GROUP BY TABLE_NAME) as x
FROM sys.tables
WHERE [type] = ''U''
AND
DB_ID() > 4
AND [NAME] = ''TblSetting''
';
GO
SELECT * FROM #TempTable;
GO
به هر حال مهندس جان اگر پیشنهاد و راه حل بهتری برای نمایش سالها و دیتابیس ها دارید و باید در دیتابیس تغییرات ابجاد کنم من تغییرات در دیتابیس اعمال میکنم .
در هر صورت ممنون از پیگیری و راهنمایی ها
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- حذف کامل یک رکورد در جدول ریلیشن شده
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf