Как я могу получить свойства базы данных SQL Server из кода C #? - PullRequest
1 голос
/ 07 марта 2012

У меня есть консольное приложение C # 4.0 и база данных SQL Server 2008, работающая на сервере базы данных.

Кто-нибудь знает, есть ли способ получить свойства базы данных (например, «База данных только для чтения») из кода C #?

Полагаю, так и должно быть, но я не смог найти точное решение.

Заранее спасибо

1 Ответ

1 голос
/ 07 марта 2012

Есть как минимум два способа сделать это.Один из них - использование таблиц метаданных базы данных , другой - использование объектов управления SQL . В обоих случаях имеется много данных, поэтому вам действительно нужно знать, чего вы хотите.Например, вот как вы могли бы получить упомянутое вами свойство «Только для чтения».

Использование SqlCommand для метаданных

using (SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=master;Integrated Security=SSPI;"))
{
   SqlCommand cmd = new SqlCommand("SELECT is_read_only FROM sys.filegroups",cnn);
   cnn.Open();
   var isReadOnly = cmd.ExecuteScalar();
   Console.WriteLine(isReadOnly );
}

ИспользованиеSMO

using System;
using Microsoft.SqlServer.Management.Smo;

namespace SMO_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Server srv = new Server(); //Connection to the local SQL Server 

            Database db = srv.Databases["master"];
            foreach (FileGroup fg in db.FileGroups)
            {
                Console.WriteLine(fg.ReadOnly);

            }

        }
    }
}
...