Übersicht (SMO)Overview (SMO)

Gilt für: JaSQL Server JaAzure SQL-Datenbank JaAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

SQL ServerSQL ServerManagement Objects (SMO) sind Objekte, die für die Programm MicrosoftMicrosoft SQL ServerSQL Servergesteuerte Verwaltung von entwickelt wurden.Management Objects (SMO) are objects designed for programmatic management of MicrosoftMicrosoftSQL ServerSQL Server. Sie können SMO verwenden, um benutzerdefinierte SQL ServerSQL Server-Verwaltungsanwendungen zu erstellen.You can use SMO to build customized SQL ServerSQL Server management applications. Wenngleich SQL Server Management StudioSQL Server Management Studio eine leistungsstarke und umfassende Anwendung zur Verwaltung von SQL ServerSQL Server ist, sind Sie in manchen Fällen mit einer SMO-Anwendung möglicherweise besser beraten.Although SQL Server Management StudioSQL Server Management Studio is a powerful and extensive application for managing SQL ServerSQL Server, there might be times when you would be better served by an SMO application.

Beispielsweise müssen die Benutzeranwendungen zur Steuerung der SQL ServerSQL Server-Verwaltungsaufgaben eventuell vereinfacht werden, um den Anforderungen neuer Benutzer zu entsprechen und um die Schulungskosten zu senken.For example, the user applications that control the SQL ServerSQL Server management tasks might have to be simplified to meet the needs of new users and to reduce training costs. Oder Sie müssen benutzerdefinierte SQL ServerSQL Server-Datenbanken bzw. eine Anwendung zum Erstellen und Überwachen der Indexeffizienz erstellen.You might have to create customized SQL ServerSQL Server databases, or create an application for creating and monitoring the efficiency of indexes. Eine SMO-Anwendung kann auch verwendet werden, um Hard- oder Software anderer Hersteller nahtlos in die Anwendung zur Datenbankverwaltung einzubinden.An SMO application might also be used to include third-party hardware or software seamlessly into the database management application.

Da SMO mit SQL Server 2005 (9.x)SQL Server 2005 (9.x) und höheren Versionen kompatibel ist, können Sie mühelos eine Multiversionsumgebung verwalten.Because SMO is compatible with SQL Server 2005 (9.x)SQL Server 2005 (9.x) and later versions, you can easily manage a multi-version environment.

Zu den Funktionen in SMO zählen die folgenden:Features in SMO include the following:

  • Zwischengespeichertes Objektmodell und optimierte Objektinstanzerstellung.Cached object model and optimized object instance creation. Objekte werden nur geladen, wenn auf sie ausdrücklich verwiesen wird.Objects are loaded only when specifically referenced. Objekteigenschaften werden beim Erstellen der Objekte nur teilweise geladen.Object properties are only partially loaded when the object is created. Die übrigen Objekte und Eigenschaften werden geladen, wenn direkt auf sie verwiesen wird.The remaining objects and properties are loaded when they are referenced directly.

  • Ausführung von Transact-SQLTransact-SQL-Anweisungen im Batchmodus.Batched execution of Transact-SQLTransact-SQL statements. Anweisungen werden im Batchmodus ausgeführt, um die Netzwerkleistung zu verbessern.Statements are batched to improve network performance.

  • Aufzeichnen von Transact-SQLTransact-SQL-Anweisungen.Capture Transact-SQLTransact-SQL statements. Ermöglicht die Erfassung eines beliebigen Vorgangs in einem Skript.Allows any operation to be captured into a script. Management StudioManagement Studio verwendet diese Fähigkeit, um einen Vorgang in ein Skript aufzunehmen, anstatt ihn sofort auszuführen.Management StudioManagement Studio uses this capability to script an operation instead of executing it immediately.

  • Verwaltung von SQL ServerSQL Server-Diensten mit dem WMI-Anbieter.Management of SQL ServerSQL Server services with the WMI Provider. SQL ServerSQL Server-Dienste können programmgesteuert gestartet, gestoppt und angehalten werden.SQL ServerSQL Server services can be started, stopped, and paused programmatically.

  • Erweiterte Skripterstellung.Advanced Scripting. Transact-SQLTransact-SQL-Skripts können generiert werden, um SQL ServerSQL Server-Objekte neu zu erstellen, die Beziehungen zu anderen Objekten auf der Instanz von SQL ServerSQL Server beschreiben.Transact-SQLTransact-SQL scripts can be generated to re-create SQL ServerSQL Server objects that describe relationships to other objects on the instance of SQL ServerSQL Server.

  • Verwenden eindeutiger Ressourcennamen (URNs).Use of Unique Resource Names (URNs). Ein URN ermöglicht es Ihnen, Instanzen von SMO-Objekten zu erstellen und darauf zu verweisen.A URN allows you to create instances of and reference SMO objects.

SMO stellt auch viele Funktionen und Komponenten, die in SQL Server 2005 (9.x)SQL Server 2005 (9.x) eingeführt wurden, als neue Objekte oder Eigenschaften dar.SMO also represents as new objects or properties many features and components that were introduced in SQL Server 2005 (9.x)SQL Server 2005 (9.x). Zu diesen neuen Funktionen und Komponenten gehören:These new features and components include the following:

Service BrokerService Broker-Unterstützung für nachrichtenbasierte Kommunikation.Service BrokerService Broker support for message-based communication. Weitere Informationen finden Sie unter SQL Server Service Broker.For more information, see SQL Server Service Broker.

  • Synonymunterstützung für mehrere Namen von SQL ServerSQL Server-Datenbankobjekten.Synonym support for multiple names of SQL ServerSQL Server database objects. Weitere Informationen finden Sie unter Synonyme (Datenbank-Engine).For more information, see Synonyms (Database Engine).

  • Verwaltung von Datenbank-E-Mail zur Erstellung von E-Mail-Servern, E-Mail-Profilen und E-Mail-Konten in SQL ServerSQL Server.The management of Database Mail that lets you create e-mail servers, e-mail profiles, and e-mail accounts in SQL ServerSQL Server. Weitere Informationen finden Sie unter Datenbank-E-Mail.For more information, see Database Mail.

  • Unterstützung registrierter Server zum Registrieren von Verbindungsinformationen.Registered Servers support for registering connection information. Weitere Informationen finden Sie unter Registrieren von Servern.For more information, see Register Servers.

  • Ablaufverfolgung und Wiederholung von SQL ServerSQL Server-Ereignissen.Trace and replay of SQL ServerSQL Server events. Weitere Informationen finden Sie unter SQL Server Profiler, SQL-Ablauf Verfolgung, SQL Server Distributed Replayund Erweiterte Ereignisse.For more information, see SQL Server Profiler, SQL Trace, SQL Server Distributed Replay, and Extended Events.

  • Unterstützung von Zertifikaten und Schlüsseln für die Sicherheitssteuerung.Support for certificates and keys for security control. Weitere Informationen finden Sie unter Verschlüsselungs Hierarchie.For more information, see Encryption Hierarchy.

  • DDL-Trigger für zusätzliche Funktionalität beim Auftreten von DDL-Ereignissen.DDL triggers for adding functionality when DDL events occur. Weitere Informationen finden Sie unter DDL Triggers.For more information, see DDL Triggers.

Der SMO-Namespace lautet Microsoft.SqlServer.Management.Smo.The SMO namespace is Microsoft.SqlServer.Management.Smo. SMO wird als MicrosoftMicrosoft .NET Framework.NET Framework-Assembly implementiert.SMO is implemented as a MicrosoftMicrosoft.NET Framework.NET Framework assembly. Das bedeutet, dass die CLR (Common Language Runtime) von MicrosoftMicrosoft .NET Framework.NET Framework, Version 2.0, installiert werden muss, bevor die SMO-Objekte verwendet werden.This means that the common language runtime from the MicrosoftMicrosoft.NET Framework.NET Framework version 2.0 must be installed before using the SMO objects. Die SMO-Assemblys werden standardmäßig mithilfe der SQL ServerSQL Server-SDK-Option im globalen Assemblycache (GAC) installiert.The SMO assemblies are installed by default into the Global Assembly Cache (GAC) with the SQL ServerSQL Server SDK option. Die Assemblys befinden sich unter "c:\Programme\Microsoft SQL server\130\sdk\assemblies".The assemblies are located in C:\Program Files\Microsoft SQL Server\130\SDK\Assemblies. Weitere Informationen finden Sie in der Dokumentation zu Visual StudioVisual Studio.NET Framework.NET Framework .For more information, see the Visual StudioVisual Studio.NET Framework.NET Framework documentation.

SMO-KlassenSMO Classes

SMO-Klassen umfassen zwei Kategorien: Instanzklassen und Hilfsprogrammklassen.SMO classes include two categories: instance classes and utility classes.

InstanzklassenInstance Classes

Die Instanzklassen stellen SQL ServerSQL Server-Objekte dar, z. B. Server, Datenbanken, Tabellen, Trigger und gespeicherte Prozeduren.The instance classes represent SQL ServerSQL Server objects such as servers, databases, tables, triggers, and stored procedures. Um eine Verbindung zur Instanz von ServerConnection herzustellen und den Aufzeichnungsmodus für an die Instanz gesendete Befehle zu steuern, wird die Klasse SQL ServerSQL Server verwendet.The ServerConnection class is used to establish a connection to the instance of SQL ServerSQL Server and control the capture mode of commands sent to it.

Die SMO-Instanzobjekte bilden eine Hierarchie, die die Hierarchie eines Datenbankservers darstellt.The SMO instance objects form a hierarchy that represents the hierarchy of a database server. Ganz oben sind die Instanzen von SQL ServerSQL Server, gefolgt von den Datenbanken, gefolgt von den Tabellen, Spalten, Triggern usw.At the top are the instances of SQL ServerSQL Server, under which are the databases, and following on with tables, columns, triggers and so on. Ist eine 1:n-Beziehung zwischen den über- und untergeordneten Elementen logisch, etwa im Fall einer Tabelle mit mehreren Spalten, wird das untergeordnete Element durch eine Objektauflistung dargestellt.If it is logical that there is a one parent to many children relationship, such as a table having one or more columns, then the child is represented by a collection of objects. Andernfalls wird das untergeordnete Element nur durch ein Objekt dargestellt.Otherwise the child is just represented by an object.

HilfsklassenUtility Classes

Hilfsprogrammklassen sind eine Gruppe von Objekten, die explizit erstellt wurden, um bestimmte Tasks auszuführen.Utilities classes are a group of objects that have been created explicitly to perform specific tasks. Sie werden auf Grundlage ihrer Funktion in unterschiedliche Objekthierarchien unterteilt:They have been divided into different object hierarchies based on function:

  • Übertragungsklasse.Transfer class. Diese wird verwendet, um Schema und Daten in eine andere Datenbank zu übertragen.This is used to transfer schema and data to another database.

  • Klassen zur Sicherung und Wiederherstellung.Backup and Restore classes. Diese werden zum Sichern und Wiederherstellen von Datenbanken verwendet.These are used to back up and restore databases.

  • Scripter-Klasse.Scripter Class. Diese wird zum Erstellen von Skriptdateien für die erneute Generierung von Objekten und ihren Abhängigkeiten verwendet.This is used to create script files for the regeneration of objects and their dependencies.

SMO-FeaturesSMO Features

Optimierte LeistungOptimized Performance

Die SMO-Architektur ist im Hinblick auf den Speicher effizient, da Objekte zunächst nur teilweise instanziiert werden und vom Server nur minimale Eigenschaften Informationen angefordert werden.The SMO architecture is efficient in terms of memory because objects are only partially instantiated at first, and minimal property information is requested from the server. Die vollständige Instanziierung der Objekte wird verzögert, bis auf das Objekt explizit verwiesen wird.Full instantiation of objects is delayed until the object is explicitly referenced. Ein Objekt wird vollständig instanziiert, wenn eine Eigenschaft angefordert wird, die nicht Bestandteil der zunächst abgerufenen Eigenschaftengruppe ist, oder wenn eine Methode aufgerufen wird, die eine solche Eigenschaft erfordert.An object is fully instantiated when a property is requested that is not in the set of properties that are first retrieved, or when a method is called that requires such a property. Der Übergang zwischen teilweise und vollständig instanziierten Objekten erfolgt für den Benutzer transparent.The transition between partially instantiated and fully instantiated objects is transparent to the user. Darüber hinaus werden einige Eigenschaften, die viel Arbeitsspeicher belegen, nur dann abgerufen, wenn explizit auf die Eigenschaft verwiesen wird.Additionally, some properties that use lots of memory are never retrieved, unless the property explicitly referenced. Ein Beispiel hierfür ist die Size-Eigenschaft der Database-Objekteigenschaft.An example of this is the Size property of the Database object property. Die teilweise Instanziierung erfordert jedoch mehr Netzwerkroundtrips und stellt möglicherweise nicht die leistungseffizienteste Option für Ihre Anwendung dar.However, partial instantiation does require more network round trips and might not be the best performing option for your application.

Sie können die Instanziierung entsprechend der Systemumgebung steuern.You can control instantiation to suit the system environment. Durch die verzögerte Instanziierung wird der von der Anwendung benötigte Arbeitsspeicher minimiert, wenngleich dadurch möglicherweise zahlreiche Serveranforderungen ausgelöst werden, wenn auf Eigenschaften verwiesen wird.Relying on delayed instantiation minimizes the amount of memory required by the application, although it might trigger many server requests when properties are referenced.

Für Instanzklassen (Objekte, die wirkliche Datenbankobjekte darstellen) sind drei Ebenen der Instanziierung möglich:Instance classes, objects that represent real database objects, can exist in three levels of instantiation. minimal instanziiert (nur die erforderlichen Mindesteigenschaften werden in einem Block gelesen), teilweise instanziiert (alle Eigenschaften, die relativ viel Speicher in Anspruch nehmen, werden in einem Block gelesen) und vollständig instanziiert.These are minimal-instantiated (only the minimal required properties are read in one block), partially instantiated (all the properties that use a relatively large amount of memory are read in one block), and fully instantiated. Nicht instanziiert und vollständig instanziiert sind die herkömmlichen Instanziierungsstatuswerte.Un-instantiated and fully instantiated are the traditional states of instantiation. Die teilweise Instanziierung steigert die Effizienz, da ein teilweise instanziiertes Objekt nicht Werte für alle Objekteigenschaften enthält.The partially instantiated state increases efficiency because a partially instantiated object does not contain values for the full set of object properties. Die teilweise Instanziierung ist der Standardstatus für ein Objekt, auf das nicht direkt verwiesen wird.Partial instantiation is the default state for an object that is not directly referenced. Wird auf eine dieser Eigenschaften verwiesen, tritt ein Fehler auf, der zur vollständigen Instanziierung des Objekts auffordert.When one of these properties is referenced, a fault is generated that prompts a full instantiation of the object.

Aufzeichnen der AusführungCapture Execution

Die direkte Ausführung ist die übliche Methode der Ausführung.Direct execution is the usual method of execution. Anweisungen werden direkt an eine Instanz von SQL ServerSQL Server gesendet.Statements are sent to an instance of SQL ServerSQL Server directly as they are incurred. Eine Alternative stellt die Aufzeichnung der Ausführung dar.Capture execution is the alternative to this.

Dabei können Sie Transact-SQLTransact-SQL-Batches aufzeichnen, die in der Regel ausgeführt würden.Capture execution lets you capture Transact-SQLTransact-SQL batches that would typically be executed. Auf diese Weise kann der SMO-Programmierer das Skript aufschieben, zur späteren Ausführung speichern oder dem Endbenutzer eine Vorschau bereitstellen.This lets the SMO programmer defer the script, store it for later execution, or provide a preview for the end-user. Beispielsweise können eine Create Database-, CREATE TABLE-und Create Index -Anweisung in einem Batch gesendet und dann als drei sequenzielle Schritte ausgeführt werden.For example, a create database, a create table, and a create index statement can be sent in one batch and then run as three sequential steps. Diese Funktionalität wird vom Benutzer mit dem Server-Objekt gesteuert.This functionality is controlled by the user by using the Server object.

WMI-AnbieterWMI Provider

Die WMI-Anbieterobjekte werden von SMO umschlossen.The WMI Provider objects are wrapped by SMO. Damit steht dem SMO-Programmierer ein einfaches Objektmodell zur Verfügung, das SMO-Klassen stark ähnelt, ohne dass dafür Kenntnisse des durch den Namespace und die Details des SQL ServerSQL Server WMI-Anbieters dargestellten Programmiermodells erforderlich sind.This provides the SMO programmer with a simple object model that is similar to SMO classes very closely, without the requirement to understand the programming model that is represented by the namespace and the details of the SQL ServerSQL Server WMI Provider. Mithilfe des WMI-Anbieters können Sie SQL ServerSQL Server-Dienste, Aliase und Client- und Servernetzwerkbibliotheken konfigurieren.The WMI Provider lets you configure SQL ServerSQL Server services, aliases, and client and server network libraries.

SkripterstellungScripting

In SMO wurde die Skripterstellung verbessert und in die Scripter -Klasse verschoben.In SMO, scripting has been enhanced and moved into the Scripter class. Die Scripter -Klasse kann Abhängigkeiten ermitteln, die Beziehungen zwischen Objekten verstehen und die Bearbeitung der Abhängigkeits Hierarchie ermöglichen.The Scripter class can discover dependencies, understand the relationships between objects, and enables manipulation of the dependency-hierarchy. Das Hauptskript Objekt ist das scripterobjekt .The main scripting object is the Scripter object. Daneben gibt es mehrere unterstützende Objekte, die Abhängigkeiten behandeln und auf Fortschritts- oder Fehlerereignisse antworten.There are also several supporting objects that handle the dependencies and respond to progress or error events.

Das Scripter -Objekt unterstützt die folgenden erweiterten Skript Erstellungs Optionen:The Scripter object supports the following advanced scripting options:

  • Einfache einphasige Skripterstellung (erstellt das Skript in einem Schritt)Simple 1-phase scripting (creates the script in one step)

  • Erweiterte 3-Phasen-Skripterstellung (erstellt das Skript in drei Schritten: Abhängigkeits Ermittlung, Listen Generierung, Skript Generierung)Advanced 3-phase scripting (creates the script in three steps; dependency discovery, list generation, script generation)

  • Bidirektionale Abhängigkeitsermittlung (ermöglicht die Ermittlung von Abhängigkeiten oder abhängigen Elementen)Two-way dependency discovery (allows for discovery of dependencies, or dependents)

  • Antwort auf FortschrittsereignisseResponse to progress events

  • Antwort auf FehlerereignisseResponse to error events

Eindeutige RessourcennamenUnique Resource Names

Ein Schlüsselkonzept bei der Verwendung der SMO-Objektbibliothek ist der eindeutige Ressourcenname (Unique Resource Name, URN).A key concept in using the SMO object library is the Unique Resource Name (URN). Die URN-Syntax ähnelt der XPath-Syntax.The URN uses a syntax similar to XPath. Die XPath-Syntax stellt einen Hierarchiepfad zur Angabe eines Objekts dar, bei dem jede Ebene Qualifizierer und Funktionen aufweist.The XPath is a hierarchy path used to specify an object in which each level has qualifiers and functions. In SMO verfügt der URN über zwei Elemente, den Pfad und die Attributbenennung mit eingeschränkter Funktionalität.In SMO the URN has two elements, the path and attribute naming that has limited functionality. Über den Pfad wird der Speicherort des Objekts angegeben, während die Attributbenennung eine gewisse Filterung erlaubt.The path is used to specify the location of the object whereas the attribute naming allows for a degree of filtering.

Ein URN-Beispiel für eine Datenbank istAn example of an URN for a database is

/Server/Database[@Name='Adventureworks2012']  

Der URN eines Objekts kann abgerufen werden, indem auf seine URN-Eigenschaft verwiesen wird.The URN of an object can be retrieved by referencing its URN property. Das Scripter-Objekt verwendet auch URNs als Parameter, die Objekt Verweise an die-Methode des Scripter -Objekts übergeben.The Scripter object also uses URNs as parameters that pass object references to the method of the Scripter object. Außerdem kann ein URN für die gezmuobject -Methode des Server Objekts angegeben werden.Additionally, an URN can be specified for the GetSmoObject method of the Server object. Damit wird eine Instanz des SMO-Objekts erstellt.This is used to create an instance of the SMO object.

SQL Server in SMO dargestellte FeaturesSQL Server Features Represented in SMO

Tabellen-und Index PartitionierungTable and Index Partitioning

Mithilfe der Indextabellenpartitionierung können Sie die Spannweite von Daten in Tabellen und Indizes dateigruppenübergreifend verwalten.Index Table Partitioning lets you manage the spread of data in tables and indexes across file groups. Diese neue Funktion wird durch SMO-Objekte dargestellt.This new feature is represented by SMO objects.

EndpunkteEndPoints

SOAP- und Datenbankspiegelungs-Anforderungen werden von Endpunkten verarbeitet, die das Endpoint-Objekt verwenden.SOAP and database mirroring requests are handled by endpoints using the Endpoint object.

Momentaufnahmeisolation/Versionsverwaltung auf ZeilenebeneSnapshot Isolation/Row Level Versioning

Die Momentaufnahmeisolation (Zeilenebenen-Versionsverwaltung) wird durch neue Database-Objekteigenschaften dargestellt.Snapshot Isolation (row level versioning) is represented by new Database object properties.

XML-Schemanamespace, XML-Indizes und XML-DatentypXML Schema Namespace, XML Indexes and XML datatype

XML-Schemanamespaces werden in SMO durch eine Auflistung von Objekten dargestellt.XML Schema Namespaces are represented in SMO by a collection of objects. XML-Indizes werden in SMO durch eine Index Objekt Eigenschaft dargestellt.XML indexes are represented in SMO by an Index object property.

Erweiterte VolltextsucheFull-Text Search Enhancements

In SMO werden neue Objekte bereitgestellt, die eine erweiterte Volltextsuche ermöglichen.New objects are provided in SMO that represent the enhancements to full text search.

Seiten ÜberprüfungPage Verify

Das PageVerify-Objekt stellt Optionen zur Überprüfung von Datenbankseiten dar.The PageVerify object represents database page verify options.

MomentaufnahmenSnapshot Databases

Eine Momentaufnahmedatenbank ist eine schreibgeschützte Kopie einer bestimmten Datenbank zu einem gegebenen Zeitpunkt.A snapshot database is a read-only copy of a specified database as a specific point in time. Eine Momentaufnahmedatenbank kann mit der IsDatabaseSnapshot-Eigenschaft des Database-Objekts angegeben werden.A snapshot database can be specified by using the IsDatabaseSnapshot property of the Database object.

Service BrokerService Broker

[!INCLUDE[ssSB](../../includes/sssb-md.md)] und seine Funktionalität werden durch eine Gruppe von Objekten dargestellt.[!INCLUDE[ssSB](../../includes/sssb-md.md)] and its functionality is represented by a group of objects **Indexerweiterungen****Index Enhancements** [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]-Indexerweiterungen werden durch neue Eigenschaften im -Objekt dargestellt.[!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] index enhancements are represented by new properties in the object. ## Weitere InformationenSee Also [Replication Management Objects ConceptsReplication Management Objects Concepts](../../relational-databases/replication/concepts/replication-management-objects-concepts.md)