Ustawianie właściwości
Właściwości są wartości, które przechowują informacje opisowe dotyczące obiektu.For example, Microsoft SQL Server configuration options are represented by the Configuration object's properties.właściwość są dostępne bezpośrednio lub pośrednio za pomocą kolekcja właściwość.Dostęp do właściwości bezpośrednio używa następującej składni:
objInstance.PropertyName
Wartość właściwości można modyfikować lub pobierane w zależności od tego, czy właściwość ma dostęp tylko do odczytu lub dostęp do odczytu i zapisu.Konieczna jest również zestaw niektórych właściwości przed utworzeniem obiektu.Aby uzyskać więcej informacji zobacz SMO dla określonego obiektu.
Ostrzeżenie
Kolekcje obiektów podrzędność są wyświetlane jako właściwość obiektu.Na przykład Tables kolekcja jest właściwość z Server obiektu.Aby uzyskać więcej informacji, zobacz Przy użyciu kolekcji.
Właściwości obiektu są członkami kolekcja właściwości.Kolekcja właściwość można używać do iterować za pośrednictwem właściwość każdego obiektu.
Czasami właściwość nie jest dostępna z następujących powodów:
Wersja serwera nie obsługuje właściwość, takie jak if spróbuj uzyskać dostęp do właściwość, która reprezentuje nowy SQL Server funkcję w starszej wersji programu SQL Server.
Serwer nie udostępnia danych dla właściwość, takie jak if próbie uzyskania dostępu do właściwość, która reprezentuje SQL Server składnik, który nie jest zainstalowany.
Okoliczności te mogą obsługiwać przez UnknownPropertyException i PropertyCannotBeRetrievedException SMO wyjątki.
Ustawienie domyślne inicjowania pola
SMO wykonuje Optymalizacja podczas pobierania obiektów.Optymalizację minimalizuje liczbę ładowany przez automatyczne skalowanie między Państwami następujących właściwości:
Częściowo załadowane.Najpierw odwołań do obiektu posiada minimum właściwości dostępne (takie jak nazwa i schematu).
Całkowicie załadowany.Po odwołaniu dowolnej właściwość pozostałe właściwość, które są szybkie ładowanie, są inicjowane i są dostępne.
Właściwości używających dużej ilości pamięci.Pozostałe właściwość niedostępne używać dużej ilości pamięci i mieć Expensive właściwość wartość PRAWDA (takich jak DataSpaceUsage).Właściwości te są ładowane tylko wtedy, gdy wyraźnie odwołanie.
Jeśli aplikacja pobierania właściwości dodatkowe, oprócz jednego z dostarczanych w stanie częściowo załadowane przesyła kwerendę, aby pobrać te dodatkowe właściwości i skaluje Państwu w pełni załadowany.Może to spowodować niepotrzebny ruch między klient i serwera.Więcej optymalizacji można osiągnąć poprzez wywołanie SetDefaultInitFields metoda.SetDefaultInitFields Metoda pozwala specyfikacja właściwości, które są ładowane, gdy obiekt jest zainicjowany.
SetDefaultInitFields Metoda ustawia właściwość ładowania zachowanie dla pozostałych aplikacji albo do resetowania.Można zapisać oryginalne zachowanie za pomocą GetDefaultInitFields metoda i przywracanie jako wymagane.
Przykłady
Aby używać dostarczonych przykładów kodu źródłowego, należy wybrać środowisko, szablon oraz język programowania, które będą używane do tworzenia aplikacji. Aby uzyskać więcej informacji, zobacz temat „Jak utworzyć projekt SMO języka Visual Basic w programie Visual Studio .NET” lub „Jak utworzyć projekt SMO języka Visual C# w programie Visual Studio .NET” w dokumentacji SQL Server — książki online.
Pobieranie i ustawianie właściwości w języku Visual Basic
Poniższy przykład kodu pokazuje, jak Edition Właściwość Information obiektu i jak zestaw SqlExecutionModes Właściwość ConnectionContext Właściwość ExecuteSql element członkowski SqlExecutionModes wyliczyć typu.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Get a property.
Console.WriteLine(srv.Information.Version)
'Set a property.
srv.ConnectionContext.SqlExecutionModes = SqlExecutionModes.ExecuteSql
Pobieranie i ustawianie właściwości w języku Visual C#
Poniższy przykład kodu pokazuje, jak Edition Właściwość Information obiektu i jak zestaw SqlExecutionModes Właściwość ConnectionContext Właściwość ExecuteSql element członkowski SqlExecutionModes wyliczyć typu.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Get a property.
Console.WriteLine(srv.Information.Version);
//Set a property.
srv.ConnectionContext.SqlExecutionModes = SqlExecutionModes.ExecuteSql;
}
Ustawienie różnych właściwości przed obiekt jest tworzony w programie Visual Basic
Poniższy przykład kodu pokazuje jak bezpośrednio zestaw AnsiNullsStatus Właściwość Table obiektu i sposobu tworzenia i dodać kolumny przed utworzeniem Table obiektu.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Create a new table in the AdventureWorks2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
Dim tb As Table
'Specify the parent database, table schema and the table name in the constructor.
tb = New Table(db, "Test_Table", "HumanResources")
'Add columns because the table requires columns before it can be created.
Dim c1 As Column
'Specify the parent table, the column name and data type in the constructor.
c1 = New Column(tb, "ID", DataType.Int)
tb.Columns.Add(c1)
c1.Nullable = False
c1.Identity = True
c1.IdentityIncrement = 1
c1.IdentitySeed = 0
Dim c2 As Column
c2 = New Column(tb, "Name", DataType.NVarChar(100))
c2.Nullable = False
tb.Columns.Add(c2)
tb.AnsiNullsStatus = True
'Create the table on the instance of SQL Server.
tb.Create()
Ustawienie różnych właściwości przed obiekt jest tworzony w środowisku Visual C#
Poniższy przykład kodu pokazuje jak bezpośrednio zestaw AnsiNullsStatus Właściwość Table obiektu i sposobu tworzenia i dodać kolumny przed utworzeniem Table obiektu.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Create a new table in the AdventureWorks2008R2 database.
Database db;
db = srv.Databases("AdventureWorks2008R2");
Table tb;
//Specify the parent database, table schema, and the table name in the constructor.
tb = new Table(db, "Test_Table", "HumanResources");
//Add columns because the table requires columns before it can be created.
Column c1;
//Specify the parent table, the column name, and data type in the constructor.
c1 = new Column(tb, "ID", DataType.Int);
tb.Columns.Add(c1);
c1.Nullable = false;
c1.Identity = true;
c1.IdentityIncrement = 1;
c1.IdentitySeed = 0;
Column c2;
c2 = new Column(tb, "Name", DataType.NVarChar(100));
c2.Nullable = false;
tb.Columns.Add(c2);
tb.AnsiNullsStatus = true;
//Create the table on the instance of SQL Server.
tb.Create();
}
Iterowanie poprzez wszystkie właściwości obiektu w języku Visual Basic
Poniższy przykład kodu iterację Properties kolekcja StoredProcedure obiektów i wyświetla je na Visual Studio ekranu danych wyjściowych.
W przykładzie Property obiektu zostało umieszczone w nawiasach kwadratowych, ponieważ jest również Visual Basic słów kluczowych.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Set properties on the uspGetEmployeeManagers stored procedure on the AdventureWorks2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
Dim sp As StoredProcedure
sp = db.StoredProcedures("uspGetEmployeeManagers")
sp.AnsiNullsStatus = False
sp.QuotedIdentifierStatus = False
'Iterate through the properties of the stored procedure and display.
'Note the Property object requires [] parentheses to distinguish it from the Visual Basic key word.
Dim p As [Property]
For Each p In sp.Properties
Console.WriteLine(p.Name & p.Value)
Next
Iterowanie poprzez wszystkie właściwości obiektu w środowisku Visual C#
Poniższy przykład kodu iterację Properties kolekcja StoredProcedure obiektów i wyświetla je na Visual Studio ekranu danych wyjściowych.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Set properties on the uspGetEmployeedManagers stored procedure on the AdventureWorks2008R2 database.
Database db;
db = srv.Databases("AdventureWorks2008R2");
StoredProcedure sp;
sp = db.StoredProcedures("uspGetEmployeeManagers");
sp.AnsiNullsStatus = false;
sp.QuotedIdentifierStatus = false;
//Iterate through the properties of the stored procedure and display.
Property p;
foreach ( p in sp.Properties) {
Console.WriteLine(p.Name + p.Value);
}
}
Ustawienie domyślne inicjowania pola w języku Visual Basic
Poniższy przykład kodu pokazuje jak zminimalizować liczbę zainicjowany w programie SMO właściwości obiektu.Musi zawierać using System.Collections.Specialized; Instrukcja używania StringCollection obiektu.
SQL Server ProfilerSłuży do porównywania numer sprawozdania przesyłane do wystąpienie SQL Server z optymalizacji.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Assign the Table object type to a System.Type object variable.
Dim tb As Table
Dim typ As Type
tb = New Table
typ = tb.GetType
'Assign the current default initialization fields for the Table object type to a
'StringCollection object variable.
Dim sc As StringCollection
sc = srv.GetDefaultInitFields(typ)
'Set the default initialization fields for the Table object type to the CreateDate property.
srv.SetDefaultInitFields(typ, "CreateDate")
'Retrieve the Schema, Name, and CreateDate properties for every table in AdventureWorks2008R2.
'Note that the improvement in performance can be viewed in SQL Profiler.
For Each tb In db.Tables
Console.WriteLine(tb.Schema + "." + tb.Name + " " + tb.CreateDate)
Next
'Set the default initialization fields for the Table object type back to the original settings.
srv.SetDefaultInitFields(typ, sc)
Ustawienie domyślne pola inicjalizacji Visual C#
Poniższy przykład kodu pokazuje jak zminimalizować liczbę zainicjowany w programie SMO właściwości obiektu.Musi zawierać using System.Collections.Specialized; Instrukcja używania StringCollection obiektu.
SQL Server ProfilerSłuży do porównywania numer sprawozdania przesyłane do wystąpienie SQL Server z optymalizacji.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//Reference the AdventureWorks2008R2 database.
Database db;
db = srv.Databases("AdventureWorks2008R2");
//Assign the Table object type to a System.Type object variable.
Table tb;
Type typ;
tb = new Table();
typ = tb.GetType;
//Assign the current default initialization fields for the Table object type to a
//StringCollection object variable.
StringCollection sc;
sc = srv.GetDefaultInitFields(typ);
//Set the default initialization fields for the Table object type to the CreateDate property.
srv.SetDefaultInitFields(typ, "CreateDate");
//Retrieve the Schema, Name, and CreateDate properties for every table in AdventureWorks2008R2.
//Note that the improvement in performance can be viewed in SQL Server Profiler.
foreach ( tb in db.Tables) {
Console.WriteLine(tb.Schema + "." + tb.Name + " " + tb.CreateDate);
}
//Set the default initialization fields for the Table object type back to the original settings.
srv.SetDefaultInitFields(typ, sc);
}