Udostępnij za pośrednictwem


Ustawianie właściwości

Właściwości są wartości, które są przechowywane 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 mogą być modyfikowane lub pobrane, w zależności od tego, czy właściwość ma dostęp tylko do odczytu lub dostęp w trybie odczytu/zapisu.Jest również ustawianie niektórych właściwości przed utworzeniem obiektu.Aby uzyskać więcej informacji Zobacz obiekty SMO dla określonego obiektu.

Uwaga

Kolekcje obiektu podrzędnego są wyświetlane jako właściwość obiektu.Na przykład Tables Kolekcja jest właściwością Server obiekt. Aby uzyskać więcej informacji zobaczZa pomocą kolekcje.

Właściwości obiektu są członkami kolekcja właściwości.Kolekcja właściwość może być używana do iteracji dla każdej właściwość obiektu.

Czasami właściwość nie jest dostępna w następujących sytuacjach:

  • Wersja serwera nie obsługuje właściwość, takiego jak spróbuj uzyskać dostęp do właściwość, która reprezentuje nowy SQL Server funkcję w starszej wersji SQL Server.

  • Serwer nie zawiera danych dla właściwość, takie jak w przypadku próby uzyskania dostępu do właściwość, która reprezentuje SQL Server składnik, który nie jest zainstalowany.

Takie okoliczności mogą być obsługiwane przez połowu UnknownPropertyException oraz PropertyCannotBeRetrievedException Wyjątki obiektów SMO.

Ustawienie domyślne inicjowania pola

Obiekty SMO wykonuje optymalizację podczas pobierania obiektów.Optymalizacji minimalizuje liczbę właściwości ładowane przez automatyczne skalowanie między następujące stany:

  1. Częściowo załadowane.Po pierwsze odwołań do obiektu ma co najmniej właściwości dostępne (takie jak nazwa i schemat).

  2. Całkowicie załadowany.Gdy odwołuje się do dowolnej właściwość, pozostałe właściwość, które są szybkie załadować, są inicjowane i stają się dostępne.

  3. Właściwości, które używają pamięci.Niedostępne pozostałych właściwość Użyj dużej ilości pamięci i mieć Expensive() właściwość wartość PRAWDA (np. DataSpaceUsage()). Właściwości te są ładowane tylko wtedy, gdy odwołuje się konkretnie do.

Jeśli aplikacja pobrać właściwości dodatkowe, oprócz tych, pod warunkiem że w trakcie częściowo załadowane przesyła kwerendę, aby pobrać te dodatkowe właściwości i skaluje do stanu, w pełni załadowany.Może to powodować zbędne ruchu między klient a serwerem.Więcej optymalizacji, można osiągnąć przez wywołanie SetDefaultInitFields(Boolean) Metoda. The SetDefaultInitFields(Boolean) metoda allows specification of the properties that are loaded when the object is initialized.

The SetDefaultInitFields(Boolean) metoda sets the właściwość loading behavior for the rest of application or until it is reset. Można zapisać oryginalne zachowanie przy użyciu GetDefaultInitFields(Type) metoda i przywrócić ją zgodnie z wymaganiami.

Przykłady

To use any code example that is provided, you will have to choose the programming environment, the programming template, and the programming language in which to create your application. For more information, see "How to: Create a Visual Basic SMO Project in Visual Studio .NET" or "How to: Create a Visual C# SMO Project in Visual Studio .NET" in SQL Server Books Online.

Pobieranie i ustawianie właściwość w języku Visual Basic

W tym przykładzie kodu pokazano, jak uzyskać Edition() Właściwość Information obiekt i jak zestaw SqlExecutionModes() Właściwość ConnectionContext() Właściwość ExecuteSql element członkowski członkowski SqlExecutionModes Typ tekstu stałego.

Pobieranie i ustawianie właściwość w języku Visual C#

W tym przykładzie kodu pokazano, jak uzyskać Edition() Właściwość Information obiekt i jak zestaw SqlExecutionModes() Właściwość ConnectionContext() Właściwość ExecuteSql element członkowski członkowski SqlExecutionModes Typ tekstu stałego.

{ 
//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; 
}

Ustawianie różne właściwości przed Object jest tworzony w języku Visual Basic

W tym przykładzie kodu pokazano sposób bezpośrednio zestaw AnsiNullsStatus() Właściwość Table obiekt i jak utworzyć i dodać kolumny przed utworzeniem Table obiekt.

Ustawianie różne właściwości przed Object jest tworzony w środowisku Visual C#

W tym przykładzie kodu pokazano sposób bezpośrednio zestaw AnsiNullsStatus() Właściwość Table obiekt i jak utworzyć i dodać kolumny przed utworzeniem Table obiekt.

{ 
//Connect to the local, default instance of SQL Server. 
Server srv; 
srv = new Server(); 
//Create a new table in the AdventureWorks database. 
Database db; 
db = srv.Databases("AdventureWorks"); 
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

W tym przykładzie kodu iterację Properties Kolekcja StoredProcedure obiekt i wyświetla je na Visual Studio Ekran danych wyjściowych.

W przykładzie Property obiekt został wprowadzony w nawiasach kwadratowych, ponieważ jest on również Visual Basic słowo kluczowe.

Iterowanie poprzez wszystkie właściwości obiektu w środowisku Visual C#

W tym przykładzie kodu iterację Properties Kolekcja StoredProcedure obiekt i wyświetla je na Visual Studio Ekran 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 AdventureWorks database. 
Database db; 
db = srv.Databases("AdventureWorks"); 
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

W tym przykładzie kodu pokazano, jak zminimalizować liczbę właściwości obiektu zainicjowany w programie obiektów SMO.Muszą być uwzględniane using System.Collections.Specialized; instrukcję, aby użyć StringCollection obiekt.

SQL Server Profiler Służy do porównywania numeru oświadczenia, wysłane do wystąpienie SQL Server z tego optymalizacji.

Ustawienie domyślne pola inicjowania w środowisku Visual C#

W tym przykładzie kodu pokazano, jak zminimalizować liczbę właściwości obiektu zainicjowany w programie obiektów SMO.Muszą być uwzględniane using System.Collections.Specialized; instrukcję, aby użyć StringCollection obiekt.

SQL Server Profiler Służy do porównywania numeru oświadczenia, wysłane do wystąpienie SQL Server z tego optymalizacji.

{ 
//Connect to the local, default instance of SQL Server. 
Server srv; 
srv = new Server(); 
//Reference the AdventureWorks database. 
Database db; 
db = srv.Databases("AdventureWorks"); 
//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 AdventureWorks. 
   //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); 
}