SnapshotGenerationAgent.DynamicFilterHostName Property

Gets or sets the value supplied to the HOST_NAME function used in a parameterized row filter.

Namespace:  Microsoft.SqlServer.Replication
Assembly:  Microsoft.SqlServer.Replication (in Microsoft.SqlServer.Replication.dll)

Syntax

'Declaration
Public Property DynamicFilterHostName As String 
    Get 
    Set
'Usage
Dim instance As SnapshotGenerationAgent 
Dim value As String 

value = instance.DynamicFilterHostName

instance.DynamicFilterHostName = value
public string DynamicFilterHostName { get; set; }
public:
virtual property String^ DynamicFilterHostName {
    String^ get () sealed;
    void set (String^ value) sealed;
}
abstract DynamicFilterHostName : string with get, set 
override DynamicFilterHostName : string with get, set
final function get DynamicFilterHostName () : String 
final function set DynamicFilterHostName (value : String)

Property Value

Type: String
A String value used for filtering.

Implements

ISnapshotGenerationAgent.DynamicFilterHostName

Remarks

The value specified for DynamicFilterHostName is used when generating the partitioned snapshot for a subscription defined based-on a parameterized row filter that uses the HOST_NAME function. For example, if the subset filter clause LoginID = HOST_NAME() is specified for an article, and you set the DynamicFilterHostName property to "adventure-works\garrett1" before calling the Merge Agent, only rows having "adventure-works\garrett1" in the login_id column will be replicated.

The DynamicFilterHostName property is only supported for merge publications.

You should not specify a value for DynamicFilterHostName when specifying a value for DynamicFilterLogin.

Examples

          // Set the Publisher, publication database, and publication names.
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2012";
            string publisherName = publisherInstance;
            string distributorName = publisherInstance;

            SnapshotGenerationAgent agent;

            try
            {
                // Set the required properties for Snapshot Agent.
                agent = new SnapshotGenerationAgent();
                agent.Distributor = distributorName;
                agent.DistributorSecurityMode = SecurityMode.Integrated;
                agent.Publisher = publisherName;
                agent.PublisherSecurityMode = SecurityMode.Integrated;
                agent.Publication = publicationName;
                agent.PublisherDatabase = publicationDbName;
                agent.ReplicationType = ReplicationType.Merge;

                // Specify the partition information to generate a 
                // filtered snapshot based on Hostname.
                agent.DynamicFilterHostName = hostname;

                // Start the agent synchronously.
                agent.GenerateSnapshot();
            }
            catch (Exception ex)
            {
                // Implement custom application error handling here.
                throw new ApplicationException(String.Format(
                    "A snapshot could not be generated for the {0} publication."
                    , publicationName), ex);
            }
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim publisherName As String = publisherInstance
Dim distributorName As String = publisherInstance

Dim agent As SnapshotGenerationAgent

Try
    ' Set the required properties for Snapshot Agent.
    agent = New SnapshotGenerationAgent()
    agent.Distributor = distributorName
    agent.DistributorSecurityMode = SecurityMode.Integrated
    agent.Publisher = publisherName
    agent.PublisherSecurityMode = SecurityMode.Integrated
    agent.Publication = publicationName
    agent.PublisherDatabase = publicationDbName
    agent.ReplicationType = ReplicationType.Merge

    ' Specify the partition information to generate a 
    ' filtered snapshot based on Hostname.
    agent.DynamicFilterHostName = hostname

    ' Start the agent synchronously.
    agent.GenerateSnapshot()
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
     "A snapshot could not be generated for the {0} publication." _
     , publicationName), ex)
End Try

See Also

Reference

SnapshotGenerationAgent Class

Microsoft.SqlServer.Replication Namespace

Other Resources

How to: Create a Snapshot for a Merge Publication With Parameterized Filters (RMO Programming)

Parameterized Row Filters