我只是尝试对 SQL Server 数据库中的表进行简单的架构更改(通过使用 SMSS 中的设计工具)。每当我尝试保存更改时,它都会超时。我想知道这是否是由于“锁定”表的现有连接。
我决定终止连接作为一个实验。我查询 master..sysprocesses 以获取该数据库的当前 spid,并一一杀死它们,直到我能够保存我的架构更改。(不是很科学,但我远非 SQL Server 专家)。果然,当我杀死了所有的 spid(除了我使用 SMSS 的那个),我能够保存架构更改。
想问一下ADO.NET SqlConnections和spids的关系。例如,如果客户端应用程序在 SqlConnection 对象上调用 Open(),我是否应该在 master..sysprocesses 中看到另一个 spid?如果我在那个 SqlConnection 上调用 Close() 会怎样?蜘蛛应该消失吗?
我敢肯定这不是那么简单,因为我知道有一个连接池的概念,但是有人可以阐明这种关系是如何工作的吗?
谢谢
大卫