Article.DatabaseName Property
アーティクルでパブリッシュされるデータとオブジェクトを含むデータベース名を取得します。値の設定も可能です。
名前空間: Microsoft.SqlServer.Replication
アセンブリ: Microsoft.SqlServer.Rmo (microsoft.sqlserver.rmo.dll 内)
構文
'宣言
Public Property DatabaseName As String
public string DatabaseName { get; set; }
public:
property String^ DatabaseName {
String^ get ();
void set (String^ value);
}
/** @property */
public String get_DatabaseName ()
/** @property */
public void set_DatabaseName (String value)
public function get DatabaseName () : String
public function set DatabaseName (value : String)
プロパティ値
パブリケーション データベースの名前を指定する String 値です。
例外
例外の種類 | 条件 |
---|---|
ApplicationException | 既存のアーティクルに DatabaseName プロパティを設定しようとすると発生します。 |
ArgumentException | DatabaseName プロパティに null 値、null 文字を含む値、または 128 Unicode 文字より長い値を設定すると発生します。 |
解説
DatabaseName プロパティは、読み取り/書き込みプロパティです。
Create メソッドを呼び出してサーバー上にアーティクルを作成する前に、DatabaseName プロパティを設定する必要があります。既存のアーティクルにこのプロパティを設定しようとすると、例外が生成されます。
SQL Server 以外のパブリケーションの場合、DatabaseName プロパティにディストリビューション データベースの名前を設定する必要があります。
DatabaseName プロパティを取得できるのは、パブリッシャ側およびサブスクライバ側 (サブスクライバを再パブリッシュする場合) の固定サーバー ロール sysadmin のメンバです。また、パブリケーション データベースの固定データベース ロール db_owner のメンバ、および PAL のメンバも取得できます。MergeArticle オブジェクトの場合は、ディストリビュータ側の固定データベース ロール replmonitor のメンバも取得できます。
DatabaseName プロパティを設定できるのは、パブリッシャ側の固定サーバー ロール sysadmin のメンバです。また、パブリケーション データベースの固定データベース ロール db_owner のメンバも設定できます。
DatabaseName を取得すると、sp_helparticle (Transact-SQL) (トランザクション レプリケーションまたはスナップショット レプリケーションの場合) または sp_helpmergearticle (Transact-SQL) (マージ レプリケーションの場合) を実行したのと同じことになります。
DatabaseName を設定すると、sp_addarticle (Transact-SQL) (トランザクション レプリケーションまたはスナップショット レプリケーションの場合) または sp_addmergearticle (Transact-SQL) (マージ レプリケーションの場合) を実行したのと同じことになります。
DatabaseName プロパティは、SQL Server 2005、SQL Server 2000、および SQL Server 7.0 で利用できます。
この名前空間、クラス、またはメンバは、.NET Framework 2.0 でのみサポートされています。
使用例
// Define the Publisher, publication, and article names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks";
string articleName = "Product";
string schemaOwner = "Production";
TransArticle article;
// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
// Create a filtered transactional articles in the following steps:
// 1) Create the article with a horizontal filter clause.
// 2) Add columns to or remove columns from the article.
try
{
// Connect to the Publisher.
conn.Connect();
// Define a horizontally filtered, log-based table article.
article = new TransArticle();
article.ConnectionContext = conn;
article.Name = articleName;
article.DatabaseName = publicationDbName;
article.SourceObjectName = articleName;
article.SourceObjectOwner = schemaOwner;
article.PublicationName = publicationName;
article.Type = ArticleOptions.LogBased;
article.FilterClause = "DiscontinuedDate IS NULL";
// Ensure that we create the schema owner at the Subscriber.
article.SchemaOption |= CreationScriptOptions.Schema;
if (!article.IsExistingObject)
{
// Create the article.
article.Create();
}
else
{
throw new ApplicationException(String.Format(
"The article {0} already exists in publication {1}.",
articleName, publicationName));
}
// Create an array of column names to remove from the article.
String[] columns = new String[1];
columns[0] = "DaysToManufacture";
// Remove the column from the article.
article.RemoveReplicatedColumns(columns);
}
catch (Exception ex)
{
// Implement appropriate error handling here.
throw new ApplicationException("The article could not be created.", ex);
}
finally
{
conn.Disconnect();
}
' Define the Publisher, publication, and article names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks"
Dim articleName As String = "Product"
Dim schemaOwner As String = "Production"
Dim article As TransArticle
' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
' Create a filtered transactional articles in the following steps:
' 1) Create the article with a horizontal filter clause.
' 2) Add columns to or remove columns from the article.
Try
' Connect to the Publisher.
conn.Connect()
' Define a horizontally filtered, log-based table article.
article = New TransArticle()
article.ConnectionContext = conn
article.Name = articleName
article.DatabaseName = publicationDbName
article.SourceObjectName = articleName
article.SourceObjectOwner = schemaOwner
article.PublicationName = publicationName
article.Type = ArticleOptions.LogBased
article.FilterClause = "DiscontinuedDate IS NULL"
' Ensure that we create the schema owner at the Subscriber.
article.SchemaOption = article.SchemaOption Or _
CreationScriptOptions.Schema
If Not article.IsExistingObject Then
' Create the article.
article.Create()
Else
Throw New ApplicationException(String.Format( _
"The article {0} already exists in publication {1}.", _
articleName, publicationName))
End If
' Create an array of column names to remove from the article.
Dim columns() As String = New String(0) {}
columns(0) = "DaysToManufacture"
' Remove the column from the article.
article.RemoveReplicatedColumns(columns)
Catch ex As Exception
' Implement appropriate error handling here.
Throw New ApplicationException("The article could not be created.", ex)
Finally
conn.Disconnect()
End Try
スレッド セーフ
この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
開発プラットフォーム
サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。
対象プラットフォーム
サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。
参照
関連項目
Article Class
Article Members
Microsoft.SqlServer.Replication Namespace
その他の技術情報
アーティクルを定義する方法 (RMO プログラミング)
アーティクルを削除する方法 (RMO プログラミング)
アーティクルのプロパティを表示および変更する方法 (RMO プログラミング)