断开与 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();
}

请参阅

参考

Server

ServerConnection