我只是試圖對SQL Server數據庫中的表進行簡單的模式更改(通過使用SMSS中的設計工具)。每當我嘗試保存更改時,它都會保持超時。我想知道這是否是由於現有的「鎖定」桌面的連接。客戶端應用程序中的開放SqlConnections與SQL Server中的進程之間的關係是什麼?
我決定殺死連接作爲一個實驗。我查詢了master..sys進程以獲取該數據庫的當前spid,並逐個殺死它們,直到我能夠保存模式更改。 (不是很科學,但我遠離SQL Server的專家)。果然,當我殺死了所有的spids(禁止使用SMSS的那個)時,我能夠保存模式更改。
我想問一下ADO.NET SqlConnections和spids之間的關係。例如,如果客戶端應用程序在SqlConnection對象上調用Open(),是否應該在master..sysprocesses中看到另一個spid?如果我在該SqlConnection上調用Close(),怎麼樣?該spid消失了嗎?
我敢肯定這不是那麼簡單,因爲我明白有一個連接池的概念,但是有人可以闡明這種關係是如何工作的?
謝謝
大衛
不,這幾乎就是我所要求的。謝謝! – David 2011-09-19 08:41:07