Disconnecting from an Instance of SQL Server

Manually closing and disconnecting SQL Server Management Objects (SMO) objects is not required. Connections are opened and closed as required.

Connection Pooling

When the Connect method is called, the connection is not automatically released. The Disconnect method must be called explicitly to release the connection to the connection pool. Also, you can request a non-pooled connection. You do this by setting the NonPooledConnection property of the ConnectionContext property that references the ServerConnection object.

Disconnecting from an Instance of SQL Server for RMO

Closing server connections when you are programming with RMO works slightly different from SMO.

Because the server connection for an RMO object is maintained by the ServerConnection object, this object is also used when disconnecting from an instance of Microsoft SQL Server when you program by using RMO. To close a connection by using the ServerConnection object, call the Disconnect method of the RMO object. After the connection has been closed, RMO objects cannot be used.

Example

To use any code example that is provided, you will have to choose the programming environment, the programming template, and the programming language in which to create your application. For more information, see "How to: Create a Visual Basic SMO Project in Visual Studio .NET" or "How to: Create a Visual C# SMO Project in Visual Studio .NET" in SQL Server Books Online.

Closing and Disconnecting an SMO Object in Visual Basic

This code example shows how to request a non-pooled connection by setting the NonPooledConnection property of the ConnectionContext object property.

Dim srv As Server
srv = New Server
'Disable automatic disconnection.
srv.ConnectionContext.AutoDisconnectMode = AutoDisconnectMode.NoAutoDisconnect
'Connect to the local, default instance of SQL Server.
srv.ConnectionContext.Connect()
'The actual connection is made when a property is retrieved.
Console.WriteLine(srv.Information.Version)
'Disconnect explicitly.
srv.ConnectionContext.Disconnect()

Closing and Disconnecting an SMO Object in Visual C#

This code example shows how to request a non-pooled connection by setting the NonPooledConnection property of the ConnectionContext object property.

{ 
Server srv; 
srv = new Server(); 
//Disable automatic disconnection. 
srv.ConnectionContext.AutoDisconnectMode = AutoDisconnectMode.NoAutoDisconnect; 
//Connect to the local, default instance of SQL Server. 
srv.ConnectionContext.Connect(); 
//The actual connection is made when a property is retrieved. 
Console.WriteLine(srv.Information.Version); 
//Disconnect explicitly. 
srv.ConnectionContext.Disconnect();
}

See Also

Reference