Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il primo passaggio di programmazione in un'applicazione SMO (SQL Server Management Objects) consiste nel creare un'istanza dell'oggetto e stabilire la connessione a un'istanza Server di Microsoft SQL Server.
È possibile creare un'istanza dell'oggetto Server e stabilire una connessione all'istanza di SQL Server in tre modi. Il primo consiste nell'usare una ServerConnection variabile oggetto per fornire le informazioni di connessione. Il secondo consiste nel fornire le informazioni di connessione impostando in modo esplicito le proprietà dell'oggetto Server . Il terzo consiste nel passare il nome dell'istanza di SQL Server nel costruttore dell'oggetto Server .
Utilizzo di un oggetto ServerConnection
Il vantaggio dell'uso della ServerConnection variabile oggetto è che le informazioni di connessione possono essere riutilizzate. Dichiarare una Server variabile oggetto. Dichiarare quindi un ServerConnection oggetto e impostare le proprietà con informazioni di connessione, ad esempio il nome dell'istanza di SQL Server e la modalità di autenticazione. Passare quindi la ServerConnection variabile oggetto come parametro al costruttore dell'oggetto Server . Non è consigliabile condividere le connessioni tra oggetti server diversi contemporaneamente. Usare il Copy metodo per ottenere una copia delle impostazioni di connessione esistenti.
Impostazione esplicita delle proprietà dell'oggetto Server
In alternativa, è possibile dichiarare la Server variabile oggetto e chiamare il costruttore predefinito. Così come, l'oggetto Server tenta di connettersi all'istanza predefinita di SQL Server con tutte le impostazioni di connessione predefinite.
Specifica del nome dell'istanza di SQL Server nel costruttore dell'oggetto Server
Dichiarare la Server variabile oggetto e passare il nome dell'istanza di SQL Server come parametro stringa nel costruttore. L'oggetto Server stabilisce una connessione con l'istanza di SQL Server con le impostazioni di connessione predefinite.
Gestione del pool di connessioni
In genere non è necessario chiamare il Connect metodo dell'oggetto ServerConnection . SMO stabilirà automaticamente una connessione quando necessario e rilascia la connessione al pool di connessioni al termine dell'esecuzione delle operazioni. Quando viene chiamato il Connect metodo , la connessione non viene rilasciata al pool. Per rilasciare la connessione al pool, è necessaria una chiamata esplicita al Disconnect metodo . Inoltre, è possibile richiedere una connessione non in pool impostando la NonPooledConnection proprietà dell'oggetto ServerConnection .
Applicazioni multithread
Per le applicazioni multithreading, in ogni thread è necessario utilizzare un oggetto ServerConnection separato.
Connessione a un'istanza di SQL Server per RMO
Replication Management Objects (RMO) usa un metodo leggermente diverso da SMO per connettersi a un server di replica.
Gli oggetti di programmazione RMO richiedono che venga stabilita una connessione a un'istanza di SQL Server usando l'oggetto ServerConnection implementato dallo spazio dei Microsoft.SqlServer.Management.Common nomi . Questa connessione al server viene stabilita indipendentemente da un oggetto di programmazione RMO. Viene quindi passato all'oggetto RMO durante la creazione dell'istanza o tramite assegnazione alla ConnectionContext proprietà dell'oggetto . In questo modo, un oggetto di programmazione RMO e le istanze dell'oggetto connessione possono essere creati e gestiti separatamente e un singolo oggetto connessione può essere riutilizzato con più oggetti di programmazione RMO. Le regole seguenti sono valide per le connessioni a un server di replica:
Tutte le proprietà per la connessione vengono definite per un oggetto specificato ServerConnection .
Ogni connessione a un'istanza di SQL Server deve avere un proprio ServerConnection oggetto.
Tutte le informazioni di autenticazione che consentono di stabilire la connessione e accedere correttamente al server vengono fornite nell'oggetto ServerConnection.
Per impostazione predefinita, le connessioni vengono effettuate tramite l'autenticazione di Microsoft Windows. Per usare l'autenticazione di SQL Server, LoginSecure deve essere impostato su False e LoginPassword deve essere impostato su un account di accesso e una password di SQL Server validi. Le credenziali di sicurezza devono essere sempre archiviate e gestite in modo sicuro e fornite in fase di esecuzione quando possibile.
Il Connect metodo deve essere chiamato prima di passare la connessione a qualsiasi oggetto di programmazione RMO.
Esempi
Per usare qualsiasi esempio di codice fornito, è necessario scegliere l'ambiente di programmazione, il modello di programmazione e il linguaggio di programmazione in cui creare l'applicazione. Per altre informazioni, vedere "Procedura: Creare un progetto SMO di Visual Basic in Visual Studio .NET" o "Procedura: Creare un progetto SMO visual C# in Visual Studio .NET" nella documentazione online di SQL Server.
Connessione all'istanza locale di SQL Server tramite l'autenticazione di Windows in Visual Basic
La connessione all'istanza locale di SQL Server non richiede molto codice. Si basa invece sulle impostazioni predefinite per il metodo di autenticazione e il server. La prima operazione che richiede il recupero dei dati causerà la creazione di una connessione.
Questo esempio è il codice .NET di Visual Basic che si connette all'istanza locale di SQL Server usando l'autenticazione di Windows.
Connessione all'istanza locale di SQL Server tramite l'autenticazione di Windows in Visual C#
La connessione all'istanza locale di SQL Server non richiede molto codice. Si basa invece sulle impostazioni predefinite per il metodo di autenticazione e il server. La prima operazione che richiede il recupero dei dati causerà la creazione di una connessione.
Questo esempio è il codice .NET di Visual C# che si connette all'istanza locale di SQL Server usando l'autenticazione di Windows.
{
//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.
Connessione a un'istanza remota di SQL Server tramite l'autenticazione di Windows in Visual Basic
Quando ci si connette a un'istanza di SQL Server usando l'autenticazione di Windows, non è necessario specificare il tipo di autenticazione. L'autenticazione di Windows rappresenta l'impostazione predefinita.
Questo esempio è il codice .NET di Visual Basic che si connette all'istanza remota di SQL Server usando l'autenticazione di Windows. La variabile stringa strServer contiene il nome dell'istanza remota.
Connessione a un'istanza remota di SQL Server tramite l'autenticazione di Windows in Visual C#
Quando ci si connette a un'istanza di SQL Server usando l'autenticazione di Windows, non è necessario specificare il tipo di autenticazione. L'autenticazione di Windows rappresenta l'impostazione predefinita.
Questo esempio è il codice .NET di Visual C# che si connette all'istanza remota di SQL Server usando l'autenticazione di Windows. La variabile stringa strServer contiene il nome dell'istanza remota.
{
//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.
Connessione a un'istanza di SQL Server tramite l'autenticazione di SQL Server in Visual Basic
Quando ci si connette a un'istanza di SQL Server usando l'autenticazione di SQL Server, è necessario specificare il tipo di autenticazione. In questo esempio viene illustrato il metodo alternativo per dichiarare una ServerConnection variabile oggetto, che consente di riutilizzare le informazioni di connessione.
L'esempio è il codice .NET di Visual Basic che illustra come connettersi al file remoto e vPassword contiene l'accesso e la password.
' 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
Connessione a un'istanza di SQL Server tramite l'autenticazione di SQL Server in Visual C#
Quando ci si connette a un'istanza di SQL Server usando l'autenticazione di SQL Server, è necessario specificare il tipo di autenticazione. In questo esempio viene illustrato il metodo alternativo per dichiarare una ServerConnection variabile oggetto, che consente di riutilizzare le informazioni di connessione.
L'esempio è il codice .NET di Visual C# che illustra come connettersi al file remoto e vPassword contengono l'accesso e la password.
// 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
}
}