sql未能排它地鎖定資料庫以執行該操作解決:
--原因其他使用者或程序在用著資料庫
/*
關閉使用者開啟的程序處理
*/
use master
if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[p_killspid]') and objectproperty(id, n'isprocedure') = 1)
drop procedure [dbo].[p_killspid]
create proc p_killspid
@dbname varchar(200) --要關閉程序的資料庫名
as
declare @sql nvarchar(500)
declare @spid nvarchar(20)
declare #tb cursor for
select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #tb
fetch next from #tb into @spid
while @@fetch_status=0
begin
exec('kill '+@spid)
fetch next from #tb into @spid
end
close #tb
deallocate #tb
--關閉對資料庫newhis 的連線
exec p_killspid 'hjdb'
--更改排序規則
alter database hjdb collate chinese_prc_bin
--結束後刪除儲存過程
if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[p_killspid]') and objectproperty(id, n'isprocedure') = 1)
drop procedure [dbo].[p_killspid]
MySQL鎖定資料庫表
mysql中所有鎖定不會是死鎖的。這通過總是在乙個查詢前立即請求所有必要的鎖定並且總是以同樣的順序鎖定表來管理。對write,mysql使用的鎖定方法原理如下 對read,mysql使用的鎖定方法原理如下 當乙個鎖定被釋放時,鎖定可被寫鎖定佇列中的執行緒得到,然後是讀鎖定佇列中的執行緒。這意味著,如...
sqlserver 資料庫排它鎖 MySQL 鎖
鎖的由來 我們需要最大程度地利用資料庫的併發訪問,還需要確保每個使用者以一致性的方式讀取和修改資料,為解決此問題,有了鎖的機制 innodb 儲存引擎相對比mysql 資料庫的其他儲存引擎在這方面要技高一籌 mysql 常用引擎 innodb myisam memory 鎖機制用於管理對共享資源的併...
鎖定資料庫的乙個表 概述
鎖定資料庫的乙個表 select from table with holdlock 其他事務可以讀取表,但不能更新刪除 select from table with tablockx 其他事務不能讀取表,更新和刪除 select 語句中 加鎖選項 的功能說明 sql server提供了強大而完備的鎖...