Article.DatabaseName Property

Gets or sets the name of the database that contains the data and the objects that are published in the article.

Namespace: Microsoft.SqlServer.Replication
Assembly: Microsoft.SqlServer.Rmo (in microsoft.sqlserver.rmo.dll)

Syntax

'Declaration
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)

Property Value

A String value that specifies the name of the publication database.

Exceptions

Exception type Condition
ApplicationException

When you attempt to set the DatabaseName property for an existing article.

ArgumentException

When you set the DatabaseName property to a null value, to a value with null characters, or to a value longer than 128-Unicode characters.

Remarks

The DatabaseName property is a read/write property.

The DatabaseName property must be set before the Create method is called to create the article on the server. Attempting to set this property for an existing article generates an exception.

The DatabaseName property must be set to the name of the distribution database for non-SQL Server publications.

The DatabaseName property can be retrieved by members of the sysadmin fixed server role at the Publisher and at the Subscriber (for republishing Subscribers). It can also be retrieved by members of the db_owner fixed database role on the publication database and by users who are members of the PAL. For a MergeArticle object, this property can also be retrieved by members of the replmonitor fixed database role on the Distributor.

The DatabaseName property can be set by members of the sysadmin fixed server role at the Publisher. It can also be set by members of the db_owner fixed database role on the publication database.

Retrieving DatabaseName is equivalent to executing sp_helparticle (Transact-SQL) for transactional or snapshot replication or executing sp_helpmergearticle (Transact-SQL) for merge replication.

Setting DatabaseName is equivalent to executing sp_addarticle (Transact-SQL) for transactional or snapshot replication, or executing sp_addmergearticle (Transact-SQL) for merge replication.

The DatabaseName property is available with SQL Server 2005, SQL Server 2000, and SQL Server 7.0..

This namespace, class, or member is supported only in the .NET Framework 2.0.

Example

// 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

Thread Safety

Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

For a list of the supported platforms, see Hardware and Software Requirements for Installing SQL Server 2005.

Target Platforms

For a list of the supported platforms, see Hardware and Software Requirements for Installing SQL Server 2005.

See Also

Reference

Article Class
Article Members
Microsoft.SqlServer.Replication Namespace

Other Resources

How to: Define an Article (RMO Programming)
How to: Delete an Article (RMO Programming)
How to: View and Modify Article Properties (RMO Programming)