ForEachSMOEnumerator.EnumURN Property
Gets or sets a String that contains the SMO enumeration Uniform Resource Name (URN) for the selected enumeration.
Namespace: Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO
Assembly: Microsoft.SqlServer.ForEachSMOEnumerator (in Microsoft.SqlServer.ForEachSMOEnumerator.dll)
Syntax
'Declaration
Public Property EnumURN As String
Get
Set
'Usage
Dim instance As ForEachSMOEnumerator
Dim value As String
value = instance.EnumURN
instance.EnumURN = value
public string EnumURN { get; set; }
public:
virtual property String^ EnumURN {
String^ get () sealed;
void set (String^ value) sealed;
}
abstract EnumURN : string with get, set
override EnumURN : string with get, set
final function get EnumURN () : String
final function set EnumURN (value : String)
Property Value
Type: System.String
A String that contains the enumerator's configuration parameters.
Implements
IDTSForEachSMOEnumerator.EnumURN
Remarks
The SMO enumeration URN contains four parts. First is the string, RuntimeServer. followed by a connection. The following line of code is an example of an EnumURN property where a connection has been specified.
RuntimeServer[@Connection='{B1552E8D-43AE-44B1-B5D3-03C4F5461977}']/Server[@Name='localhost']/SMOEnumObj[@Name='Databases']/SMOEnumType[@Name='Names']
The second part of the string is the server name parameter.
The last two parts of the string are the SMOEnumObj and SMOEnumType parameters. The SMOEnumObj parameter, which comes third in the four-part string, describes which enumeration object is enumerated. Valid values are:
@"LinkedServers"
@"Jobs"
@"Logins"
@"Databases"
@"FileGroups"
@"DataFiles"
@"LogFiles"
@"StoredProcedures"
@"UserDefinedDataTypes"
@"UserDefinedFunctions"
@"Views"
@"Users"
@"Tables"
@"Columns"
@"ForeignKeys"
@"Triggers
The code sample above shows an enumeration over databases.
The fourth and final part of the configuration string is the SMOEnumType parameter, which specifies the enumeration type to use. Valid values are:
@"Objects"
@"ObjectsPP"
@"Names"
@"URNs"
@"Locations"
The code sample above enumerates using names.
Examples
The ForEachSMOEnumerator object is created and hosted by a ForEachEnumeratorHost. The following code example shows how to create a ForEachSMOEnumerator within the host object.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SqlServer.SSIS.Samples
{
internal class EnumType
{
public const string SMOEnum = "Foreach SMO Enumerator";
}
class Program
{
static void Main(string[] args)
{
Application app = new Application();
ForEachEnumeratorInfos infos = app.ForEachEnumeratorInfos;
ForEachEnumeratorInfo info = null;
foreach (ForEachEnumeratorInfo enumInfo in infos)
{
Console.Write("Available enumerators: {0}\n", enumInfo.Name);
// When the SMO enumerator is found, set the info variable.
if (enumInfo.Name == EnumType.SMOEnum)
{
info = enumInfo;
}
}
ForEachEnumeratorHost enumH = info.CreateNew();
Console.WriteLine("SMO Enumerator: " + enumH.InnerObject.ToString());
ForEachSMOEnumerator smoEnumerator = (ForEachSMOEnumerator)enumH.InnerObject;
smoEnumerator.EnumURN = "RuntimeServer[@Variable='MachineName']/Server[@Name='localhost']/" +
"SMOEnumObj[@Name='Databases']/SMOEnumType[@Name='Names']";
Console.WriteLine("SMO.EnumURN = {0}", smoEnumerator.EnumURN);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO
Imports Microsoft.SqlServer.Dts.Runtime
Namespace Microsoft.SqlServer.SSIS.Samples
Friend Class EnumType
Public const String SMOEnum = "Foreach SMO Enumerator"
End Class
Class Program
Shared Sub Main(ByVal args() As String)
Dim app As Application = New Application()
Dim infos As ForEachEnumeratorInfos = app.ForEachEnumeratorInfos
Dim info As ForEachEnumeratorInfo = Nothing
Dim EnumInfo As ForEachEnumeratorInfo
Dim enumInfo As ForEachEnumeratorInfo
End Enum
For Each EnumInfo In infos
For Each EnumInfo In infos Console.Write("Available enumerators: {0}\n" EnumInfo.Name) End Enum
For Each enumInfo In infos
Console.Write("Available enumerators: {0}\n" enumInfo.Name)
End Enum
End Enum
' When the SMO enumerator is found, set the info variable.
If EnumInfo.Name = EnumType.SMOEnum Then
Dim EnumInfo.Name As If = EnumType.SMOEnum Then info = EnumInfo End Enum
If enumInfo.Name = EnumType.SMOEnum Then
info = enumInfo
End Enum
End Enum
End If
Next
Dim EnumH As ForEachEnumeratorHost = info.CreateNew()
Dim enumH As ForEachEnumeratorHost = info.CreateNew()
End Enum
Console.WriteLine("SMO Enumerator: " + EnumH.InnerObject.ToString())
Console.WriteLine("SMO Enumerator: " + enumH.InnerObject.ToString())
End Enum
Dim smoEnumerator As ForEachSMOEnumerator = CType(EnumH.InnerObject, ForEachSMOEnumerator)
Dim smoEnumerator As ForEachSMOEnumerator = CType(enumH.InnerObject, ForEachSMOEnumerator)
End Enum
smoEnumerator.EnumURN = "RuntimeServer[@Variable='MachineName']/Server[@Name='localhost']/" +
"SMOEnumObj[@Name='Databases']/SMOEnumType[@Name='Names']"
Console.WriteLine("SMO.EnumURN = {0}", smoEnumerator.EnumURN)
End Sub
End Class
End Namespace
Sample Output:
Available enumerators: Foreach File Enumerator
Available enumerators: Foreach Item Enumerator
Available enumerators: Foreach ADO Enumerator
Available enumerators: Foreach ADO.NET Schema Rowset Enumerator
Available enumerators: Foreach From Variable Enumerator
Available enumerators: Foreach NodeList Enumerator
Available enumerators: Foreach SMO Enumerator
SMO Enumerator: Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO.ForEachSMOEnumerator
SMO.EnumURN = RuntimeServer[@Variable='MachineName']/Server[@Name='localhost']/SMOEnumObj[@Name='Databases']/SMOEnumType[@Name='Names']