Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-databas i Förhandsversion av Microsoft Fabric
Det första programmeringssteget i ett SMO-program (SQL Server Management Objects) är att skapa en instans av Server objektet och upprätta dess anslutning till en instans av Microsoft SQL Server.
Du kan skapa en instans av Server objektet och upprätta en anslutning till SQL Server-instansen på tre sätt. Den första är att använda en ServerConnection objektvariabel för att ange anslutningsinformationen. Det andra är att ange anslutningsinformationen genom att uttryckligen ange objektegenskaperna Server . Den tredje är att skicka namnet på SQL Server-instansen Server i objektkonstruktorn.
Använda ett ServerConnection-objekt
Fördelen med att använda ServerConnection objektvariabeln är att anslutningsinformationen kan återanvändas. Deklarera en Server objektvariabel. Deklarera sedan ett ServerConnection objekt och ange egenskaper med anslutningsinformation, till exempel namnet på SQL Server-instansen och autentiseringsläget. Skicka ServerConnection sedan objektvariabeln som en parameter till Server objektkonstruktorn. Vi rekommenderar inte att du delar anslutningar mellan olika serverobjekt samtidigt. Copy Använd metoden för att hämta en kopia av de befintliga anslutningsinställningarna.
Ange egenskaper för serverobjekt explicit
Du kan också deklarera Server objektvariabeln och anropa standardkonstruktorn. Som det är Server försöker objektet ansluta till standardinstansen av SQL Server med alla standardanslutningsinställningar.
Ange SQL Server-instansnamnet i serverobjektkonstruktorn
Server Deklarera objektvariabeln och skicka SQL Server-instansnamnet som en strängparameter i konstruktorn. Objektet Server upprättar en anslutning till instansen av SQL Server med standardanslutningsinställningarna.
Connection Pooling
Connect Det är inte nödvändigt att anropa -metoden för ServerConnection objektet. När åtgärderna har slutförts upprättar SMO automatiskt anslutningar när det behövs och returnerar dem till anslutningspoolen. Om du anropar Connect metoden släpps inte anslutningen till poolen. För att uppnå det måste du använda Disconnect metoden explicit. Dessutom kan du hämta en icke-poolad anslutning genom att NonPooledConnection justera objektets ServerConnection egenskap.
Multithreaded Applications
För flertrådade program ska ett separat ServerConnection objekt användas i varje tråd.
Ansluta till en instans av SQL Server för RMO
Replikeringshanteringsobjekt (RMO) använder en något annorlunda metod än SMO för att ansluta till en replikeringsserver.
RMO-programmeringsobjekt kräver att en anslutning till en instans av SQL Server görs med hjälp ServerConnection av objektet som implementeras av namnområdet Microsoft.SqlServer.Management.Common . Den här anslutningen till servern görs oberoende av ett RMO-programmeringsobjekt. Den skickas sedan till RMO-objektet antingen när instansen skapas eller genom tilldelning till ConnectionContext objektets egenskap. På så sätt kan ett RMO-programmeringsobjekt och anslutningsobjektinstanserna skapas och hanteras separat, och ett enda anslutningsobjekt kan återanvändas med flera RMO-programmeringsobjekt. Följande regler gäller för anslutningar till en replikeringsserver:
Alla egenskaper för anslutningen definieras för ett angivet ServerConnection objekt.
Varje anslutning till en instans av SQL Server måste ha ett eget ServerConnection objekt.
All autentiseringsinformation för att upprätta anslutningen och logga in på servern anges i ServerConnection objektet.
Som standard görs anslutningar med hjälp av Microsoft Windows-autentisering. Om du vill använda SQL Server-autentisering LoginSecure måste du vara inställd på False och LoginPassword måste vara inställd på en giltig SQL Server-inloggning och ett giltigt lösenord. Säkerhetsautentiseringsuppgifter måste alltid lagras och hanteras på ett säkert sätt och anges vid körning när det är möjligt.
Metoden Connect måste anropas innan anslutningen skickas till något RMO-programmeringsobjekt.
Examples
Om du vill använda ett kodexempel som tillhandahålls måste du välja programmeringsmiljö, programmeringsmallen och programmeringsspråket för att skapa ditt program. Mer information finns i Skapa ett Visual C# SMO-projekt i Visual Studio .NET.
Ansluta till den lokala instansen av SQL Server med Hjälp av Windows-autentisering i Visual Basic
Det krävs inte mycket kod för att ansluta till den lokala instansen av SQL Server. I stället förlitar den sig på standardinställningar för autentiseringsmetod och server. Den första åtgärden som kräver att data hämtas gör att en anslutning skapas.
Det här exemplet är Visual Basic .NET-kod som ansluter till den lokala instansen av SQL Server med hjälp av Windows-autentisering.
'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.
Ansluta till den lokala instansen av SQL Server med Hjälp av Windows-autentisering i Visual C#
Det krävs inte mycket kod för att ansluta till den lokala instansen av SQL Server. I stället förlitar den sig på standardinställningar för autentiseringsmetod och server. Den första åtgärden som kräver att data hämtas gör att en anslutning skapas.
Det här exemplet är Visual C# .NET-kod som ansluter till den lokala instansen av SQL Server med hjälp av Windows-autentisering.
{
//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.
Ansluta till en fjärrinstans av SQL Server med Hjälp av Windows-autentisering i Visual Basic
När du ansluter till en instans av SQL Server med hjälp av Windows-autentisering behöver du inte ange autentiseringstypen. Windows-autentisering är standard.
Det här exemplet är Visual Basic .NET-kod som ansluter till fjärrinstansen av SQL Server med hjälp av Windows-autentisering. Strängvariabeln strServer innehåller namnet på fjärrinstansen.
'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.
Ansluta till en fjärrinstans av SQL Server med Hjälp av Windows-autentisering i Visual C#
När du ansluter till en instans av SQL Server med hjälp av Windows-autentisering behöver du inte ange autentiseringstypen. Windows-autentisering är standard.
Det här exemplet är Visual C# .NET-kod som ansluter till fjärrinstansen av SQL Server med hjälp av Windows-autentisering. Strängvariabeln strServer innehåller namnet på fjärrinstansen.
{
//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.
Ansluta till en instans av SQL Server med hjälp av SQL Server-autentisering i Visual Basic
När du ansluter till en instans av SQL Server med hjälp av SQL Server-autentisering måste du ange autentiseringstypen. Det här exemplet visar den alternativa metoden för att deklarera en ServerConnection objektvariabel, vilket gör att anslutningsinformationen kan återanvändas.
Exemplet är Visual Basic .NET-kod som visar hur du ansluter till fjärren och vPassword innehåller inloggningen och lösenordet.
' 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
Ansluta till en instans av SQL Server med hjälp av SQL Server-autentisering i Visual C#
När du ansluter till en instans av SQL Server med hjälp av SQL Server-autentisering måste du ange autentiseringstypen. Det här exemplet visar den alternativa metoden för att deklarera en ServerConnection objektvariabel, vilket gör att anslutningsinformationen kan återanvändas.
Exemplet är Visual C# .NET-kod som visar hur du ansluter till fjärren och vPassword innehåller inloggningen och lösenordet.
// 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
}
}