Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der erste Programmierschritt in einer SMO-Anwendung (SQL Server Management Objects) besteht darin, eine instance des Server Objekts zu erstellen und dessen Verbindung mit einer instance von Microsoft SQL Server herzustellen.
Sie können auf drei Arten eine instance des Server Objekts erstellen und eine Verbindung mit der instance von SQL Server herstellen. Die erste Methode verwendet eine ServerConnection-Objektvariable, um die Verbindungsinformationen bereitzustellen. Die zweite Methode besteht darin, die Verbindungsinformationen durch die explizite Angabe der Server-Objekteigenschaften anzugeben. Die dritte besteht darin, den Namen des SQL Server instance im Server Objektkonstruktor zu übergeben.
Verwenden eines ServerConnection-Objekts
Das Verwenden der ServerConnection-Objektvariable bietet den Vorteil, dass die Verbindungsinformationen wiederverwendet werden können. Deklarieren Sie eine Server-Objektvariable. Deklarieren Sie dann ein ServerConnection -Objekt, und legen Sie Eigenschaften mit Verbindungsinformationen wie dem Namen der instance von SQL Server und dem Authentifizierungsmodus fest. Übergeben Sie dann die ServerConnection-Objektvariable als Parameter an den Server-Objektkonstruktor. Es wird nicht empfohlen, mehrere Verbindungen zwischen unterschiedlichen Serverobjekten gleichzeitig freizugeben. Verwenden Sie die Copy-Methode, um eine Kopie der vorhandenen Verbindungseinstellungen abzurufen.
Explizites Festlegen von Serverobjekteigenschaften
Alternativ können Sie die Server-Objektvariable deklarieren und den Standardkonstruktor aufrufen. Wie es ist, versucht das Server Objekt, mit allen Standardverbindungseinstellungen eine Verbindung mit der Standardverbindungseinstellung instance SQL Server herzustellen.
Bereitstellen des Namens der SQL Server-Instanz im Serverobjektkonstruktor
Deklarieren Sie die Server Objektvariable, und übergeben Sie den SQL Server instance Namen als Zeichenfolgenparameter im Konstruktor. Das Server -Objekt stellt eine Verbindung mit der instance von SQL Server mit den Standardverbindungseinstellungen her.
Verbindungspooling
Es ist in der Regel nicht erforderlich, die Connect-Methode des ServerConnection-Objekts aufzurufen. SMO stellt bei Bedarf automatisch eine Verbindung her und gibt nach dem Abschluss der Vorgänge die Verbindung zum Verbindungspool frei. Wenn die Connect-Methode aufgerufen wird, wird die Verbindung zum Pool nicht freigegeben. Um die Verbindung zum Pool freizugeben, ist ein expliziter Aufruf der Disconnect-Methode erforderlich. Darüber hinaus können Sie eine nicht in einem Pool enthaltene Verbindung anfordern, indem Sie die NonPooledConnection-Eigenschaft des ServerConnection-Objekts festlegen.
Multithreadanwendungen
Für Multithreadanwendungen sollte in jedem Thread ein separates ServerConnection-Objekt verwendet werden.
Herstellen einer Verbindung zu einer Instanz von SQL Server für RMO
Replikationsverwaltungsobjekte (RMO) unterscheiden sich im Aufbau einer Verbindung zu einem Replikationsserver leicht von SMO.
RMO-Programmierobjekte erfordern, dass eine Verbindung mit einer instance von SQL Server mithilfe des ServerConnection vom Namespace implementierten Microsoft.SqlServer.Management.Common
-Objekts hergestellt wird. Diese Verbindung zum Server erfolgt unabhängig von einem RMO-Programmierobjekt. Sie wird anschließend entweder während der Erstellung der Instanz oder durch die Zuweisung zur ConnectionContext-Eigenschaft des Objekts an das RMO-Objekts weitergegeben. Dadurch können ein RMO-Programmierobjekt und die Instanzen des Verbindungsobjekts getrennt erstellt und verwaltet werden. Zudem kann ein einzelnes Verbindungsobjekt mit mehreren RMO-Programmierobjekten verwendet werden. Für Verbindungen mit einem Replikationsserver gelten die folgenden Regeln:
Alle Eigenschaften für die Verbindung werden für ein angegebenes ServerConnection Objekt definiert.
Jede Verbindung mit einer instance von SQL Server muss über ein eigenes ServerConnection -Objekt verfügen.
Sämtliche Authentifizierungsinformationen, die zur Herstellung der Verbindung und zur erfolgreichen Anmeldung beim Server erforderlich sind, sind im ServerConnection-Objekt angegeben.
Standardmäßig werden Verbindungen mit der Microsoft Windows-Authentifizierung hergestellt. Um SQL Server-Authentifizierung zu verwenden, LoginSecure muss auf False LoginPassword und auf eine gültige SQL Server Anmeldung und Kennwort festgelegt werden. Sicherheitsanmeldeinformationen müssen immer sicher gespeichert und verarbeitet und wann immer möglich zur Laufzeit bereitgestellt werden.
Die Connect-Methode muss vor Übergabe der Verbindung an ein RMO-Programmierobjekt aufgerufen werden.
Beispiele
Zum Verwenden eines angegebenen Codebeispiels müssen Sie die Programmierumgebung, Programmiervorlage und die zu verwendende Programmiersprache auswählen, um Ihre Anwendung zu erstellen. Weitere Informationen finden Sie in der SQL Server-Onlinedokumentation unter "Vorgehensweise: Erstellen eines Visual Basic SMO-Projekts in Visual Studio .NET" oder "Vorgehensweise: Erstellen eines Visual C# SMO-Projekts in Visual Studio .NET".
Herstellen einer Verbindung zur lokalen Instanz von SQL Server mithilfe der Windows-Authentifizierung in Visual Basic
Beim Herstellen einer Verbindung mit dem lokalen instance von SQL Server ist nicht viel Code erforderlich. Für Authentifizierungsmethode und Server werden die Standardeinstellungen verwendet. Sobald das erste Mal Daten abgerufen werden müssen, wird eine Verbindung erstellt.
Dieses Beispiel ist Visual Basic .NET-Code, der mithilfe der Windows-Authentifizierung eine Verbindung mit dem lokalen instance von SQL Server herstellt.
Herstellen einer Verbindung zur lokalen Instanz von SQL Server mithilfe der Windows-Authentifizierung in Visual C#
Beim Herstellen einer Verbindung mit dem lokalen instance von SQL Server ist nicht viel Code erforderlich. Für Authentifizierungsmethode und Server werden die Standardeinstellungen verwendet. Sobald das erste Mal Daten abgerufen werden müssen, wird eine Verbindung erstellt.
Dieses Beispiel ist Visual C#-.NET-Code, der mithilfe der Windows-Authentifizierung eine Verbindung mit dem lokalen instance von SQL Server herstellt.
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server();
//The connection is established when a property is requested.
Console.WriteLine(srv.Information.Version);
}
//The connection is automatically disconnected when the Server variable goes out of scope.
Herstellen einer Verbindung zur Remoteinstanz von SQL Server mithilfe der Windows-Authentifizierung in Visual Basic
Wenn Sie mithilfe der Windows-Authentifizierung eine Verbindung mit einer instance SQL Server herstellen, müssen Sie den Authentifizierungstyp nicht angeben. Die Windows-Authentifizierung ist als Standard vorgegeben.
Dieses Beispiel ist Visual Basic .NET-Code, der mithilfe der Windows-Authentifizierung eine Verbindung mit dem Remote-instance von SQL Server herstellt. Die Zeichenfolgenvariable strServer enthält den Namen der Remote-instance.
Herstellen einer Verbindung zur Remoteinstanz von SQL Server mithilfe der Windows-Authentifizierung in Visual C#
Wenn Sie mithilfe der Windows-Authentifizierung eine Verbindung mit einer instance SQL Server herstellen, müssen Sie den Authentifizierungstyp nicht angeben. Die Windows-Authentifizierung ist als Standard vorgegeben.
Dieses Beispiel ist Visual C# .NET-Code, der mithilfe der Windows-Authentifizierung eine Verbindung mit dem Remote-instance von SQL Server herstellt. Die Zeichenfolgenvariable strServer enthält den Namen der Remote-instance.
{
//Connect to a remote instance of SQL Server.
Server srv;
//The strServer string variable contains the name of a remote instance of SQL Server.
srv = new Server(strServer);
//The actual connection is made when a property is retrieved.
Console.WriteLine(srv.Information.Version);
}
//The connection is automatically disconnected when the Server variable goes out of scope.
Herstellen einer Verbindung zu einer Instanz von SQL Server mithilfe der SQL Server-Authentifizierung in Visual Basic
Wenn Sie mithilfe von SQL Server Authentication eine Verbindung mit einer instance SQL Server herstellen, müssen Sie den Authentifizierungstyp angeben. In diesem Beispiel ist eine Alternativmethode angegeben, mit der Sie eine ServerConnection-Objektvariable deklarieren und die Verbindungsinformationen wiederverwenden können.
Das Beispiel ist Visual Basic .NET-Code, der veranschaulicht, wie eine Verbindung mit dem Remotegerät hergestellt wird, und vPassword enthält die Anmeldung und das Kennwort.
' compile with:
' /r:Microsoft.SqlServer.Smo.dll
' /r:Microsoft.SqlServer.ConnectionInfo.dll
' /r:Microsoft.SqlServer.Management.Sdk.Sfc.dll
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common
Public Class A
Public Shared Sub Main()
Dim sqlServerLogin As [String] = "user_id"
Dim password As [String] = "pwd"
Dim instanceName As [String] = "instance_name"
Dim remoteSvrName As [String] = "remote_server_name"
' Connecting to an instance of SQL Server using SQL Server Authentication
Dim srv1 As New Server() ' connects to default instance
srv1.ConnectionContext.LoginSecure = False ' set to true for Windows Authentication
srv1.ConnectionContext.Login = sqlServerLogin
srv1.ConnectionContext.Password = password
Console.WriteLine(srv1.Information.Version) ' connection is established
' Connecting to a named instance of SQL Server with SQL Server Authentication using ServerConnection
Dim srvConn As New ServerConnection()
srvConn.ServerInstance = ".\" & instanceName ' connects to named instance
srvConn.LoginSecure = False ' set to true for Windows Authentication
srvConn.Login = sqlServerLogin
srvConn.Password = password
Dim srv2 As New Server(srvConn)
Console.WriteLine(srv2.Information.Version) ' connection is established
' For remote connection, remote server name / ServerInstance needs to be specified
Dim srvConn2 As New ServerConnection(remoteSvrName)
srvConn2.LoginSecure = False
srvConn2.Login = sqlServerLogin
srvConn2.Password = password
Dim srv3 As New Server(srvConn2)
Console.WriteLine(srv3.Information.Version) ' connection is established
End Sub
End Class
Herstellen einer Verbindung zu einer Instanz von SQL Server mithilfe der SQL Server-Authentifizierung in Visual C#
Wenn Sie mithilfe von SQL Server Authentication eine Verbindung mit einer instance SQL Server herstellen, müssen Sie den Authentifizierungstyp angeben. In diesem Beispiel ist eine Alternativmethode angegeben, mit der Sie eine ServerConnection-Objektvariable deklarieren und die Verbindungsinformationen wiederverwenden können.
Das Beispiel ist Visual C# .NET-Code, der veranschaulicht, wie eine Verbindung mit dem Remotegerät hergestellt wird, und vPassword enthält die Anmeldung und das Kennwort.
// compile with:
// /r:Microsoft.SqlServer.Smo.dll
// /r:Microsoft.SqlServer.ConnectionInfo.dll
// /r:Microsoft.SqlServer.Management.Sdk.Sfc.dll
using System;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
public class A {
public static void Main() {
String sqlServerLogin = "user_id";
String password = "pwd";
String instanceName = "instance_name";
String remoteSvrName = "remote_server_name";
// Connecting to an instance of SQL Server using SQL Server Authentication
Server srv1 = new Server(); // connects to default instance
srv1.ConnectionContext.LoginSecure = false; // set to true for Windows Authentication
srv1.ConnectionContext.Login = sqlServerLogin;
srv1.ConnectionContext.Password = password;
Console.WriteLine(srv1.Information.Version); // connection is established
// Connecting to a named instance of SQL Server with SQL Server Authentication using ServerConnection
ServerConnection srvConn = new ServerConnection();
srvConn.ServerInstance = @".\" + instanceName; // connects to named instance
srvConn.LoginSecure = false; // set to true for Windows Authentication
srvConn.Login = sqlServerLogin;
srvConn.Password = password;
Server srv2 = new Server(srvConn);
Console.WriteLine(srv2.Information.Version); // connection is established
// For remote connection, remote server name / ServerInstance needs to be specified
ServerConnection srvConn2 = new ServerConnection(remoteSvrName);
srvConn2.LoginSecure = false;
srvConn2.Login = sqlServerLogin;
srvConn2.Password = password;
Server srv3 = new Server(srvConn2);
Console.WriteLine(srv3.Information.Version); // connection is established
}
}