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
De eerste programmeerstap in een SMO-toepassing (SQL Server Management Objects) is het maken van een exemplaar van het Server object en het tot stand brengen van de verbinding met een exemplaar van Microsoft SQL Server.
U kunt een exemplaar van het Server object maken en op drie manieren verbinding maken met het exemplaar van SQL Server. De eerste maakt gebruik van een ServerConnection objectvariabele om de verbindingsgegevens op te geven. De tweede stap is het opgeven van de verbindingsgegevens door de Server objecteigenschappen expliciet in te stellen. De derde is het doorgeven van de naam van het SQL Server-exemplaar in de Server objectconstructor.
Een ServerConnection-object gebruiken
Het voordeel van het gebruik van de ServerConnection objectvariabele is dat de verbindingsgegevens opnieuw kunnen worden gebruikt. Declareer een Server objectvariabele. Declareer vervolgens een ServerConnection object en stel eigenschappen in met verbindingsgegevens, zoals de naam van het exemplaar van SQL Server en de verificatiemodus. Geef vervolgens de ServerConnection objectvariabele door als parameter aan de Server objectconstructor. Het is niet raadzaam om verbindingen tussen verschillende serverobjecten tegelijkertijd te delen. Gebruik de Copy methode om een kopie van de bestaande verbindingsinstellingen op te halen.
Serverobjecteigenschappen expliciet instellen
U kunt ook de Server objectvariabele declareren en de standaardconstructor aanroepen. Server Het object probeert verbinding te maken met het standaardexemplaren van SQL Server met alle standaardverbindingsinstellingen.
Geef de naam van het SQL Server-exemplaar op in de serverobjectconstructor
Declareer de Server objectvariabele en geef de naam van het SQL Server-exemplaar door als een tekenreeksparameter in de constructor. Het Server object brengt een verbinding tot stand met het exemplaar van SQL Server met de standaardverbindingsinstellingen.
Connection Pooling
Het aanroepen van de Connect methode van het ServerConnection object is niet nodig. Nadat bewerkingen zijn voltooid, brengt SMO automatisch verbindingen tot stand wanneer dat nodig is en keert deze terug naar de verbindingsgroep. Als u de Connect methode aanroept, wordt de verbinding niet vrijgegeven aan de pool. Hiervoor moet u de Disconnect methode expliciet gebruiken. Bovendien kunt u een niet-gepoolde verbinding verkrijgen door de NonPooledConnection eigenschap van het ServerConnection object aan te passen.
Multithreaded Applications
Voor toepassingen met meerdere threads moet een afzonderlijk ServerConnection-object worden gebruikt in elke thread.
Verbinding maken met een exemplaar van SQL Server voor RMO
Replicatiebeheerobjecten (RMO) maakt gebruik van een iets andere methode dan SMO om verbinding te maken met een replicatieserver.
RMO-programmeerobjecten vereisen dat een verbinding met een exemplaar van SQL Server wordt gemaakt met behulp van het ServerConnection object dat is geïmplementeerd door de Microsoft.SqlServer.Management.Common-naamruimte . Deze verbinding met de server wordt onafhankelijk van een RMO-programmeerobject gemaakt. Het wordt vervolgens doorgegeven aan het RMO-object tijdens het maken van het exemplaar of door toewijzing aan de ConnectionContext eigenschap van het object. Op deze manier kunnen een RMO-programmeerobject en de verbindingsobjectexemplaren afzonderlijk worden gemaakt en beheerd, en kan één verbindingsobject opnieuw worden gebruikt met meerdere RMO-programmeerobjecten. De volgende regels zijn van toepassing op verbindingen met een replicatieserver:
Alle eigenschappen voor de verbinding worden gedefinieerd voor een opgegeven ServerConnection object.
Elke verbinding met een exemplaar van SQL Server moet een eigen ServerConnection object hebben.
Alle verificatiegegevens om de verbinding te maken en zich aan te melden bij de server, worden opgegeven in het ServerConnection object.
Standaard worden verbindingen gemaakt met behulp van Microsoft Windows-verificatie. Als u SQL Server-verificatie wilt gebruiken, LoginSecure moet u zijn ingesteld op False en LoginPassword moet u deze instellen op een geldige SQL Server-aanmelding en -wachtwoord. Beveiligingsreferenties moeten altijd veilig worden opgeslagen en verwerkt, en waar mogelijk tijdens runtime worden opgegeven.
De Connect methode moet worden aangeroepen voordat de verbinding met een RMO-programmeerobject wordt doorgegeven.
Examples
Als u een codevoorbeeld wilt gebruiken dat wordt 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.
Verbinding maken met het lokale exemplaar van SQL Server met behulp van Windows-verificatie in Visual Basic
Voor het maken van verbinding met het lokale exemplaar van SQL Server is niet veel code vereist. In plaats daarvan is het afhankelijk van standaardinstellingen voor verificatiemethode en server. De eerste bewerking waarvoor gegevens moeten worden opgehaald, zorgt ervoor dat er een verbinding wordt gemaakt.
Dit voorbeeld is Visual Basic .NET-code die verbinding maakt met het lokale exemplaar van SQL Server met behulp van Windows-verificatie.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
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.
Verbinding maken met het lokale exemplaar van SQL Server met behulp van Windows-verificatie in Visual C#
Voor het maken van verbinding met het lokale exemplaar van SQL Server is niet veel code vereist. In plaats daarvan is het afhankelijk van standaardinstellingen voor verificatiemethode en server. De eerste bewerking waarvoor gegevens moeten worden opgehaald, zorgt ervoor dat er een verbinding wordt gemaakt.
Dit voorbeeld is Visual C# .NET-code die verbinding maakt met het lokale exemplaar van SQL Server met behulp van Windows-verificatie.
{
//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.
Verbinding maken met een extern exemplaar van SQL Server met behulp van Windows-verificatie in Visual Basic
Wanneer u verbinding maakt met een exemplaar van SQL Server met behulp van Windows-verificatie, hoeft u het verificatietype niet op te geven. Windows-verificatie is de standaardinstelling.
Dit voorbeeld is Visual Basic .NET-code die verbinding maakt met het externe exemplaar van SQL Server met behulp van Windows-verificatie. De tekenreeksvariabele strServer bevat de naam van het externe exemplaar.
'Connect to a remote instance of SQL Server.
Dim srv As Server
'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.
Verbinding maken met een extern exemplaar van SQL Server met behulp van Windows-verificatie in Visual C#
Wanneer u verbinding maakt met een exemplaar van SQL Server met behulp van Windows-verificatie, hoeft u het verificatietype niet op te geven. Windows-verificatie is de standaardinstelling.
Dit voorbeeld is Visual C# .NET-code die verbinding maakt met het externe exemplaar van SQL Server met behulp van Windows-verificatie. De tekenreeksvariabele strServer bevat de naam van het externe exemplaar.
{
//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.
Verbinding maken met een exemplaar van SQL Server met behulp van SQL Server-verificatie in Visual Basic
Wanneer u verbinding maakt met een exemplaar van SQL Server met behulp van SQL Server-verificatie, moet u het verificatietype opgeven. In dit voorbeeld ziet u de alternatieve methode voor het declareren van een ServerConnection objectvariabele, waarmee de verbindingsgegevens opnieuw kunnen worden gebruikt.
Het voorbeeld is Visual Basic .NET-code die laat zien hoe u verbinding maakt met het externe en vPassword het aanmeldings- en wachtwoord bevat.
' 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
Verbinding maken met een exemplaar van SQL Server met behulp van SQL Server-verificatie in Visual C#
Wanneer u verbinding maakt met een exemplaar van SQL Server met behulp van SQL Server-verificatie, moet u het verificatietype opgeven. In dit voorbeeld ziet u de alternatieve methode voor het declareren van een ServerConnection objectvariabele, waarmee de verbindingsgegevens opnieuw kunnen worden gebruikt.
Het voorbeeld is Visual C# .NET-code die laat zien hoe u verbinding maakt met het externe bestand en vPassword het aanmeldings- en wachtwoord bevat.
// 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
}
}