C# 4.0 コンソール アプリケーションと SQL Server 2008 データベースをデータベース サーバー上で稼働させています。
C# コードからデータベース プロパティ (「Database Read-Only」など) を取得する方法があるかどうか誰かが知っていますか?
そうあるべきだと思いますが、正確な解決策を見つけることができませんでした。
前もって感謝します
C# 4.0 コンソール アプリケーションと SQL Server 2008 データベースをデータベース サーバー上で稼働させています。
C# コードからデータベース プロパティ (「Database Read-Only」など) を取得する方法があるかどうか誰かが知っていますか?
そうあるべきだと思いますが、正確な解決策を見つけることができませんでした。
前もって感謝します
それには少なくとも2つの方法があります。1 つはデータベース メタデータ テーブルを使用する方法で、もう 1 つはSQL 管理オブジェクトを使用する方法です。どちらの場合も大量のデータが存在するため、必要なものを把握する必要があります。たとえば、これはあなたが言及した「データベース読み取り専用」プロパティを取得する方法です。
MetaData に対して 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);
}
}
}
}