Conectarse a una instancia de SQL Server

El primer paso de programación de una aplicación SMO (Objetos de administración de SQL Server) es crear una instancia del objeto Server y establecer su conexión a una instancia de MicrosoftSQL Server.

Puede crear una instancia del objeto Server y establecer una conexión a la instancia de SQL Server de tres maneras. La primera es utilizar una variable de objeto ServerConnection para proporcionar la información de conexión. La segunda es proporcionar la información de conexión estableciendo explícitamente las propiedades del objeto Server. La tercera es pasar el nombre de la instancia de SQL Server en el constructor del objeto Server.

Utilizar un objeto ServerConnection

La ventaja de utilizar la variable de objeto ServerConnection es que se puede reutilizar la información de conexión. Declare una variable de objeto Server. A continuación, declare un objeto ServerConnection y establezca las propiedades con información de conexión como el nombre de la instancia de SQL Server y el modo de autenticación. A continuación, pase la variable de objeto ServerConnection como parámetro al constructor de objeto Server. No se recomienda compartir a la vez las conexiones entre objetos de servidor distintos. Utilice el método Copy para obtener una copia de los valores de conexión existentes.

Establecer explícitamente las propiedades del objeto Server

De modo alternativo, puede declarar la variable de objeto Server y llamar al constructor predeterminado. Tal cual, el objeto Server intenta conectarse a la instancia predeterminada de SQL Server con todos los valores de conexión predeterminados.

Proporcionar el nombre de la instancia de SQL Server en el constructor de objeto Server

Declare la variable de objeto Server y pase el nombre de instancia de SQL Server como parámetro de cadena en el constructor. El objeto Server establece una conexión con la instancia de SQL Server con los valores de conexión predeterminados.

Agrupar conexiones

No se requiere normalmente llamar al método Connect del objeto ServerConnection. SMO establecerá automáticamente una conexión cuando sea necesario y liberará la conexión al grupo de conexiones después de haber terminado de realizar las operaciones. Cuando se llama al método Connect, no se libera la conexión al grupo. Es necesaria una llamada explícita al método Disconnect para liberar la conexión al grupo. Además, puede solicitar una conexión no agrupada estableciendo la propiedad NonPooledConnection del objeto ServerConnection.

Aplicaciones multiproceso

Para las aplicaciones multiproceso, se debe utilizar un objeto ServerConnection independiente en cada subproceso.

Conectarse a una instancia de SQL Server para RMO

Objetos de administración de replicación (RMO) usa un método ligeramente distinto de SMO para conectarse a un servidor de replicación.

Los objetos de programación RMO requieren que se realice una conexión a una instancia de SQL Server utilizando el objeto ServerConnection implementado por el espacio de nombres Microsoft.SqlServer.Management.Common. Esta conexión al servidor se realiza independientemente de los objetos de programación RMO. A continuación, se pasa al objeto RMO durante la creación de la instancia o por asignación a la propiedad ConnectionContext del objeto. De esta manera, se pueden crear y administrar los objetos de programación RMO y las instancias de objeto de conexión por separado y se puede reutilizar un objeto de conexión único con varios objetos de programación RMO. Las reglas siguientes se aplican a las conexiones a un servidor de replicación:

  • Todas las propiedades de la conexión se definen para un objeto ServerConnection especificado.

  • Cada conexión a una instancia de SQL Server debe tener su propio objeto ServerConnection.

  • Toda la información de autenticación para realizar la conexión e iniciar sesión en el servidor correctamente se proporciona en el objeto ServerConnection.

  • De forma predeterminada, las conexiones se realizan mediante la autenticación de Microsoft Windows. Para utilizar la autenticación de SQL Server, LoginSecure debe estar establecido en False y Login y Password deben estar establecidos en un inicio de sesión y contraseña de SQL Server válidos. Las credenciales de seguridad deben estar almacenadas y administradas de forma segura siempre y proporcionarse en tiempo de ejecución siempre que sea posible.

  • Se debe llamar al método Connect antes de pasar la conexión a cualquier objeto de programación RMO.

Ejemplos

Para utilizar cualquier ejemplo de código que se proporcione, deberá elegir el entorno de programación, la plantilla de programación y el lenguaje de programación en los que crear su aplicación. Para obtener más información, vea "Cómo crear un proyecto de Visual Basic SMO en Visual Studio .NET" o "Cómo crear un proyecto de Visual C# SMO en Visual Studio .NET" en los Libros en pantalla de SQL Server.

Conectarse a la instancia local de SQL Server mediante la autenticación de Windows en Visual Basic

Para conectarse a la instancia local de SQL Server no se requiere mucho código. En su lugar, se basa en la configuración predeterminada del método de autenticación y servidor. La primera operación que requiera que se recuperen datos hará que se cree una conexión.

Este ejemplo está formado por código Visual Basic .NET que se conecta a la instancia local de SQL Server mediante la autenticación de 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.

Conectarse a la instancia local de SQL Server mediante la autenticación de Windows en Visual C#

Para conectarse a la instancia local de SQL Server no se requiere mucho código. En su lugar, se basa en la configuración predeterminada del método de autenticación y servidor. La primera operación que exija la recuperación de datos hará que se cree una conexión.

Este ejemplo está formado por código Visual C# .NET que se conecta a la instancia local de SQL Server mediante la autenticación de 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.

Conectarse a una instancia remota de SQL Server mediante la autenticación de Windows en Visual Basic

Al conectarse a una instancia de SQL Server mediante la autenticación de Windows, no es necesario especificar el tipo de autenticación. La autenticación de Windows es el valor predeterminado.

Este ejemplo es código Visual Basic .NET que se conecta a la instancia remota de SQL Server mediante la autenticación de Windows. La variable de cadena strServer contiene el nombre de la instancia 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.

Conectarse a una instancia remota de SQL Server mediante la autenticación de Windows en Visual C#

Al conectarse a una instancia de SQL Server mediante la autenticación de Windows, no es necesario especificar el tipo de autenticación. Se usa la autenticación de Windows de forma predeterminada.

Este ejemplo está formado por código Visual C# .NET que se conecta a la instancia remota de SQL Server mediante la autenticación de Windows. La variable de cadena strServer contiene el nombre de la instancia 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.

Conectarse a una instancia de SQL Server mediante la autenticación de SQL Server en Visual Basic

Al conectarse a una instancia de SQL Server mediante la autenticación de SQL Server, debe especificar el tipo de autenticación. En este ejemplo se muestra el método alternativo de declarar una variable de objeto ServerConnection, que permite reutilizar la información de conexión.

El ejemplo está formado por código Visual Basic .NET que muestra cómo conectarse a la instancia remota, y vPassword contiene el inicio de sesión y la contraseña.

'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.

Conectarse a una instancia de SQL Server mediante la autenticación de SQL Server en Visual C#

Al conectarse a una instancia de SQL Server mediante la autenticación de SQL Server, debe especificar el tipo de autenticación. En este ejemplo se muestra un método alternativo para declarar una variable de objeto ServerConnection, que permite reutilizar la información de conexión.

El ejemplo está formado por código Visual C# .NET que muestra cómo conectarse a la instancia remota, y vPassword contiene el inicio de sesión y la contraseña.

{ 
//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.

Vea también

Referencia