断开与 SQL Server 实例的连接

不需要手动关闭和断开 SQL Server 管理对象 (SMO) 对象。系统会根据需要打开和关闭连接。

连接池

如果调用了 Connect 方法,则不会自动释放连接。必须显式调用 Disconnect 方法才能释放与连接池的连接。您还可以请求不加入连接池的连接。通过设置引用 ServerConnection 对象的 ConnectionContext 属性的 NonPooledConnection 属性,可以实现此目的。

断开 RMO 的 SQL Server 实例连接

在使用 RMO 进行编程时,关闭服务器连接的操作过程与使用 SMO 时略有不同。

由于对 RMO 对象的服务器连接的维护是由 ServerConnection 对象负责的,在使用 RMO 进行编程以断开与 Microsoft SQL Server 实例的连接时,也会使用此对象。若要使用 ServerConnection 对象关闭连接,请调用 RMO 对象的 Disconnect 方法。在关闭连接之后,无法再使用 RMO 对象。

示例

若要使用所提供的任何代码示例,您必须选择创建应用程序所需的编程环境、编程模板和编程语言。有关详细信息,请参阅 SQL Server 联机丛书中的“如何在 Visual Studio .NET 中创建 Visual Basic SMO 项目”或“如何在 Visual Studio .NET 中创建 Visual C# SMO 项目”。

在 Visual Basic 中关闭和断开 SMO 对象

此代码示例演示如何请求不加入连接池的连接,方法是设置 ConnectionContext 对象属性的 NonPooledConnection 属性。

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()

在 Visual C# 中关闭和断开 SMO 对象

此代码示例演示如何请求不加入连接池的连接,方法是设置 ConnectionContext 对象属性的 NonPooledConnection 属性。

{ 
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();
}

请参阅

参考