Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-database in Microsoft Fabric Preview
Eigenschappen zijn waarden waarmee beschrijvende informatie over het object wordt opgeslagen. Microsoft SQL Server-configuratieopties worden bijvoorbeeld vertegenwoordigd door de eigenschappen van het Configuration object. Eigenschappen kunnen direct of indirect worden geopend met behulp van de eigenschappenverzameling. Voor het rechtstreeks openen van eigenschappen wordt de volgende syntaxis gebruikt:
objInstance.PropertyName
Een eigenschapswaarde kan worden gewijzigd of opgehaald, afhankelijk van of de eigenschap lees-/schrijftoegang of alleen-lezentoegang heeft. Het is ook nodig om bepaalde eigenschappen in te stellen voordat een object kan worden gemaakt. Zie de SMO-verwijzing voor het specifieke object voor meer informatie.
Note
Verzamelingen onderliggende objecten worden weergegeven als de eigenschap van een object. De verzameling Tabellen is bijvoorbeeld een eigenschap van een Server-object . Zie Verzamelingen gebruiken voor meer informatie.
De eigenschappen van een object zijn leden van de verzameling Eigenschappen. De verzameling Eigenschappen kan worden gebruikt om elke eigenschap van een object te herhalen.
Soms is een eigenschap om de volgende redenen niet beschikbaar:
De serverversie biedt geen ondersteuning voor de eigenschap, bijvoorbeeld als u toegang probeert te krijgen tot een eigenschap die een nieuwe SQL Server-functie vertegenwoordigt op een oudere versie van SQL Server.
De server biedt geen gegevens voor de eigenschap, bijvoorbeeld als u toegang probeert te krijgen tot een eigenschap die een SQL Server-onderdeel vertegenwoordigt dat niet is geïnstalleerd.
U kunt deze omstandigheden afhandelen door de UnknownPropertyException en de SMO-uitzonderingen PropertyCannotBeRetrievedException te ondervangen.
Standaard initialisatievelden instellen
SMO voert een optimalisatie uit bij het ophalen van objecten. De optimalisatie minimaliseert het aantal eigenschappen dat wordt geladen door automatisch te schalen tussen de volgende statussen:
Partially loaded. Wanneer er voor het eerst naar een object wordt verwezen, is er minimaal een aantal beschikbare eigenschappen (zoals Naam en Schema).
Fully loaded. Wanneer naar een eigenschap wordt verwezen, worden de resterende eigenschappen die snel kunnen worden geladen, geïnitialiseerd en beschikbaar gesteld.
Eigenschappen die veel geheugen gebruiken. De resterende niet-beschikbare eigenschappen gebruiken veel geheugen en hebben een Expensive eigenschapswaarde waar (zoals DataSpaceUsage). Deze eigenschappen worden alleen geladen wanneer er specifiek naar wordt verwezen.
Als uw toepassing extra eigenschappen ophaalt, naast de eigenschappen die zijn opgegeven in de gedeeltelijk geladen status, wordt er een query verzonden om deze extra eigenschappen op te halen en omhoog te schalen naar de volledig geladen status. Dit kan onnodig verkeer veroorzaken tussen de client en de server. U kunt meer optimalisatie bereiken door de SetDefaultInitFields methode aan te roepen. De SetDefaultInitFields methode staat specificatie toe van de eigenschappen die worden geladen wanneer het object wordt geïnitialiseerd.
Met SetDefaultInitFields de methode wordt het laadgedrag van eigenschappen voor de rest van de toepassing ingesteld of totdat deze opnieuw wordt ingesteld. U kunt het oorspronkelijke gedrag opslaan met behulp van de GetDefaultInitFields methode en deze indien nodig herstellen.
Examples
Als u een codevoorbeeld wilt gebruiken dat is opgegeven, moet u de programmeeromgeving, de programmeersjabloon en de programmeertaal kiezen waarin u uw toepassing wilt maken. Zie Een Visual C# SMO-project maken in Visual Studio .NETvoor meer informatie.
Een eigenschap ophalen en instellen in Visual Basic
In dit codevoorbeeld ziet u hoe u de Edition eigenschap van het Information object opgeeft en hoe u de SqlExecutionModes eigenschap van de ConnectionContext eigenschap instelt op het ExecuteSql-lid van het SqlExecutionModes geïnventariseerd type.
'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
Een eigenschap ophalen en instellen in Visual C#
In dit codevoorbeeld ziet u hoe u de Edition eigenschap van het Information object opgeeft en hoe u de SqlExecutionModes eigenschap van de ConnectionContext eigenschap instelt op het ExecuteSql-lid van het SqlExecutionModes geïnventariseerd type.
{   
//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;   
}  
Verschillende eigenschappen instellen voordat een object wordt gemaakt in Visual Basic
In dit codevoorbeeld ziet u hoe u de AnsiNullsStatus eigenschap van het Table object rechtstreeks instelt en hoe u kolommen maakt en toevoegt voordat u het Table object maakt.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Create a new table in the AdventureWorks2022 database. 
Dim db As Database
db = srv.Databases("AdventureWorks2022")
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()
Verschillende eigenschappen instellen voordat een object wordt gemaakt in Visual C#
In dit codevoorbeeld ziet u hoe u de AnsiNullsStatus eigenschap van het Table object rechtstreeks instelt en hoe u kolommen maakt en toevoegt voordat u het Table object maakt.
{   
//Connect to the local, default instance of SQL Server.   
Server srv;   
srv = new Server();   
//Create a new table in the AdventureWorks2022 database.   
Database db;   
db = srv.Databases["AdventureWorks2022"];   
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();   
}  
Herhalen door alle eigenschappen van een object in Visual Basic
In dit codevoorbeeld wordt de verzameling Eigenschappen van het StoredProcedure object herhaald en weergegeven op het scherm Uitvoer van Visual Studio.
In het voorbeeld is het Property object in vierkante haakjes geplaatst, omdat het ook een Visual Basic-trefwoord is.
'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 AdventureWorks2022 database.
Dim db As Database
db = srv.Databases("AdventureWorks2022")
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
Herhalen door alle eigenschappen van een object in Visual C#
In dit codevoorbeeld wordt de verzameling Eigenschappen van het StoredProcedure object herhaald en weergegeven op het scherm Uitvoer van Visual Studio.
{   
//Connect to the local, default instance of SQL Server.   
Server srv;   
srv = new Server();   
//Set properties on the uspGetEmployeeManagers stored procedure on the AdventureWorks2022 database.   
Database db;   
db = srv.Databases["AdventureWorks2022"];   
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);   
  }   
}  
Standaard initialisatievelden instellen in Visual Basic
In dit codevoorbeeld ziet u hoe u het aantal objecteigenschappen dat is geïnitialiseerd in een SMO-programma minimaliseert. U moet de using System.Collections.Specializedinstructie ; opnemen om het StringCollection object te gebruiken.
SQL Server Profiler kan worden gebruikt om de nummerinstructies te vergelijken die met deze optimalisatie naar het exemplaar van SQL Server worden verzonden.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2022 database.
Dim db As Database
db = srv.Databases("AdventureWorks2022")
'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 AdventureWorks2022.
'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)
Standaard initialisatievelden instellen in Visual C#
In dit codevoorbeeld ziet u hoe u het aantal objecteigenschappen dat is geïnitialiseerd in een SMO-programma minimaliseert. U moet de using System.Collections.Specializedinstructie ; opnemen om het StringCollection object te gebruiken.
SQL Server Profiler kan worden gebruikt om de nummerinstructies te vergelijken die met deze optimalisatie naar het exemplaar van SQL Server worden verzonden.
{   
//Connect to the local, default instance of SQL Server.   
Server srv;   
srv = new Server();   
//Reference the AdventureWorks2022 database.   
Database db;   
db = srv.Databases["AdventureWorks2022"];   
//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 AdventureWorks2022.   
   //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);   
}