Как я могу получить список доступных баз данных на экземпляре SQL Server? Я планирую сделать их список в поле со списком в VB.NET.
sql-server
Сеф
источник
источник
exec sp_databases
не работал. Два других (master.dbo.sysdatabases
иsys.databases
) все еще работают.в свете двусмысленности в отношении количества непользовательских баз данных, вы, вероятно, должны добавить:
и добавьте имена баз данных служб отчетов
источник
Чтобы исключить системные базы данных:
Обновлен с точным значением database_id. Оно должно быть больше 4, чтобы пропустить список системных баз данных с идентификатором базы данных от 1 до 4.
источник
Работает на нашем SQL Server 2008
источник
ID
5 и 6 будут,ReportServer
иReportServerTempDB
если вы ихSQL Server Reporting Services
установили.Поскольку вы используете .NET, вы можете использовать объекты управления SQL Server
источник
var SDBLOC = new Microsoft.SqlServer.Management.Smo.Server("localhost").Databases.Cast<Microsoft.SqlServer.Management.Smo.Database>().Where(bs => !bs.IsSystemObject && bs.ID>6).ToList();
Не запутайтесь, используйте приведенный ниже простой запрос, чтобы получить все базы данных,
Если вам нужны только пользовательские базы данных;
Некоторые имена системных баз данных (ресурс, дистрибуция, reportservice, reportservicetempdb) просто вставляют его в запрос. Если у вас есть вышеупомянутые БД в вашей машине по умолчанию.
источник
Это будет работать для обоих условий, независимо от того, включена ли отчетность
источник
Я использую следующий код объектов управления SQL Server, чтобы получить список баз данных, которые не являются системными и не являются моментальными снимками.
источник
var DBsLOC = new Microsoft.SqlServer.Management.Smo.Server("localhost").Databases.Cast<Microsoft.SqlServer.Management.Smo.Database>().Where(bs => !bs.IsSystemObject && bs.ID>6).ToList();
илиforeach (var Db in new Microsoft.SqlServer.Management.Smo.Server("localhost").Databases)
как в .NET 4.0 + SQL Server 2014 или .SqlServer.Smo \ 12.0.0.0Если вы хотите опустить системные базы данных и таблицы ReportServer (если установлены):
Это работает на Sql Server 2008/2012/2014. Большая часть запросов поступает из системной хранимой процедуры sp_databases . Я только удалил ненужный столбец и добавил, где условия.
источник
В SQL Server 7, от 1 до 4 - это системные базы данных.
источник
Не уверен, что при этом будут пропущены базы данных сервера отчетов, поскольку я не использую их, но из того, что я видел, я могу опустить системные пользовательские базы данных с этим SQL:
источник
возможно я додо!
show databases;
работал на меня.источник
В SQL Server 2008 R2 это работает:
И список только базы данных, созданные пользователем (-ями).
источник
owner_sid=1
значитsa
владелец, ничего особенного в этом нет.Вы можете найти все имена баз данных с этим: -
источник
Чтобы исключить системные базы данных:
источник
sid
его столбца наsys.databases
столе егоowner_sid