Conectando-se a uma instância do SQL Server
A primeira etapa de programação em um aplicativo do SQL Server Management Objects (SMO) é criar uma instância do objeto Server e estabelecer sua conexão com uma instância do MicrosoftSQL Server.
Você pode criar uma instância do objeto Server e estabelecer uma conexão com a instância do SQL Server de três maneiras. A primeira é usar uma variável do objeto ServerConnection para fornecer as informações de conexão. A segunda é fornecer as informações de conexão definindo explicitamente as propriedades do objeto Server. A terceira é transmitir o nome da instância do SQL Server no construtor do objeto Server.
Usando um objeto ServerConnection
A vantagem de usar a variável do objeto ServerConnection é que as informações de conexão podem ser reutilizadas. Declare uma variável do objeto Server. Declare um objeto ServerConnection e defina as propriedades com informações de conexão como o nome da instância do SQL Servere o modo de autenticação. Passe a variável do objeto ServerConnection como parâmetro para o construtor do objeto Server. Não é recomendável compartilhar conexões entre diferentes objetos de servidor simultaneamente. Use o método Copy para obter uma cópia das configurações de conexão existentes.
Definindo explicitamente as propriedades do objeto Server
Como alternativa, você pode declarar a variável do objeto Server e chamar o construtor padrão. Dessa maneira, o objeto Server tenta se conectar à instância padrão do SQL Server com todas as configurações de conexão padrão.
Fornecendo o nome de instância do SQL Server no construtor do objeto Server
Declare a variável do objeto Server e passe o nome da instância do SQL Server como parâmetro de cadeia de caracteres no construtor. O objeto Server estabelece uma conexão com a instância do SQL Server com as configurações de conexão padrão.
Pool de conexões
Normalmente não é necessário chamar o método Connect do objeto ServerConnection. O SMO estabelecerá automaticamente uma conexão quando for necessário e liberará a conexão com o pool de conexão após concluir as operações. Quando o método Connect é chamado, a conexão não é liberada para o pool. Uma chamada explícita do método Disconnect é necessária para liberar a conexão com o pool. Além disso, você pode solicitar uma conexão sem pool definindo a propriedade NonPooledConnection do objeto ServerConnection.
Aplicativos multi-threaded
Para aplicativos multithreaded, um objeto ServerConnection separado deveria ser usado em cada thread.
Conectando-se a uma instância do SQL Server para RMO
O RMO (objetos de gerenciamento de replicação) usa um método ligeiramente diferente do SMO para conexão a um servidor de replicação.
Os objetos de programação de RMO exigem que seja feita uma conexão com uma instância do SQL Server usando o objeto ServerConnection implementado pelo namespace Microsoft.SqlServer.Management.Common. Essa conexão com o servidor é feita independentemente de um objeto de programação de RMO. Então, ela é passada para o objeto RMO, seja durante a criação da instância, seja por atribuição à propriedade ConnectionContext do objeto. Dessa maneira, um objeto de programação de RMO e as instâncias de objeto de conexão podem ser criados e gerenciados separadamente, e um único objeto de conexão pode ser reutilizado com vários objetos de programação de RMO. As regras a seguir se aplicam a conexões com um servidor de replicação:
São definidas todas as propriedades da conexão para um objeto ServerConnection especificado.
Cada conexão com uma instância do SQL Server precisa ter seu próprio objeto ServerConnection.
Todas as informações sobre autenticação para estabelecer com êxito a conexão e o logon no servidor são fornecidas no objeto ServerConnection.
Por padrão, as conexões são feitas usando a Autenticação do Microsoft Windows. Para usar a Autenticação do SQL Server, LoginSecure precisa ser definido como False, e Login e Password precisam ser definidos com um logon e senha válidos do SQL Server. Credenciais de segurança sempre precisam ser armazenados e manipulados de maneira segura, além de fornecidos em tempo de execução quando possível.
O método Connect precisa ser chamado antes de passar a conexão com qualquer objeto de programação de RMO.
Exemplos
Para usar qualquer exemplo de código fornecido, será necessário escolher o ambiente de programação, o modelo de programação e a linguagem de programação para criar o aplicativo. Para mais informações, consulte "Como criar um projeto Visual Basic SMO no Visual Studio .NET" ou "Como criar um projeto Visual C# SMO no Visual Studio .NET" nos Manuais Online do SQL Server.
Conectando-se à instância local do SQL Server usando a Autenticação do Windows no Visual Basic
A conexão com a instância local do SQL Server não exige muito código. Em vez disso, ela depende das configurações padrão para o servidor e o método de autenticação. A primeira operação que exige a recuperação dos dados causará a criação de uma conexão.
Este exemplo é o código Visual Basic .NET que se conecta à instância local do SQL Server usando a Autenticação do Windows.
'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.
Conectando-se à instância local do SQL Server usando a Autenticação do Windows no Visual C#
A conexão com a instância local do SQL Server não exige muito código. Em vez disso, ela depende das configurações padrão para o servidor e o método de autenticação. A primeira operação que exige a recuperação dos dados faz com que uma conexão seja criada.
Este exemplo é o código Visual C# .NET que se conecta à instância local do SQL Server usando a Autenticação do 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.
Conectando-se a uma instância remota do SQL Server usando a Autenticação do Windows no Visual Basic
Ao se conectar a uma instância do SQL Server usando a Autenticação do Windows, você não precisa especificar o tipo de autenticação. A Autenticação do Windows é padrão.
Esse exemplo é o código .NET Visual Basic que se conecta à instância remota do SQL Server usando a Autenticação do Windows. A variável de cadeia de caracteres strServer contém o nome da instância remota.
'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.
Conectando-se a uma instância remota do SQL Server usando a Autenticação do Windows no Visual C#
Ao se conectar a uma instância do SQL Server usando a Autenticação do Windows, você não precisa especificar o tipo de autenticação. A Autenticação do Windows é o padrão.
Este exemplo é o código Visual C# .NET que se conecta à instância remota do SQL Server usando a Autenticação do Windows. A variável de cadeia de caracteres strServer contém o nome da instância 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.
Conectando-se a uma instância do SQL Server usando a Autenticação do SQL Server no Visual Basic
Ao conectar-se a uma instância do SQL Server usando a Autenticação do SQL Server, você deve especificar o tipo de autenticação. Esse exemplo demonstra o método alternativo de declarar uma variável do objeto ServerConnection, que habilita as informações de conexão que serão reutilizadas.
O exemplo é o código Visual Basic .NET que demonstra como se conectar à instância remota e vPassword contém o logon e a senha.
'Declare a ServerConnection object variable to specify SQL authentication, login and password.
Dim conn As New ServerConnection
conn.LoginSecure = False
conn.Login = vlogin
conn.Password = vpassword
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server(conn)
'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.
Conectando-se a uma instância do SQL Server usando a Autenticação do SQL Server no Visual C#
Ao conectar-se a uma instância do SQL Server usando a Autenticação do SQL Server, você deve especificar o tipo de autenticação. Este exemplo demonstra o método alternativo de declarar uma variável do objeto ServerConnection, que habilita as informações de conexão a serem reutilizadas.
O exemplo é o código Visual C# .NET que demonstra como se conectar à instância remota e vPassword contém o logon e a senha.
{
//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.