活着的死人 发表于 2015-1-16 14:09:00

毛病"由于数据库正在利用,以是没法取得对数据库的独有会见权"的办理计划 ...

提供TCP/IP、ODBC和JDBC等多种数据库连接路径。明天在复原数据库的时分,提醒"由于数据库正在利用,以是没法取得对数据库的独有会见权",不管我是重启数据库,仍是重启盘算机,都不克不及办理成绩,多番实验后,终究办理了该成绩。现将激发该成绩的缘故原由与办理计划写出来,有不合错误的中央接待人人提出来。

激发缘故原由:是由于我在复原数据库的时分,另有其他的用户正在利用数据库,以是就会呈现以上提醒。

办理办法:
1,设置数据库在单用户形式下事情。
设置办法:在必要复原的数据库上右击,在右键菜单命令上选择"属性"->"选项"->"形态"->"限定会见"->"Single"。这是SQLSERVER2005的菜单命令,别的版本请本人查找。

2,使用SQL语句,杀逝世正在利用该数据库的一切历程,本人之前在做一个SQLSERVER操纵小工具的时分有写过该功效的SQL,贴出来供人人参考:
declare@dbnamevarchar(50)
set@dbname=数据库称号
declare@sqlvarchar(50)
declarecs_resultcursorlocalforselectkill+cast(spidasvarchar(50))fromsys.sysprocesseswheredb_name(dbid)=@dbname
opencs_result
fetchnextfromcs_resultinto@sql
while@@fetch_status=0
begin
execute(@sql)
fetchnextfromcs_resultinto@sql
end
closecs_result
deallocatecs_result

该SQL语句使用游标轮回一切正在利用该数据库的历程,并经由过程kill命令杀逝世历程。

3,使用SQL语句,断开一切用户链接,并回滚一切事件,详细SQL语句以下:
ALTERDATABASE[数据库称号]
SETOFFLINEWITHROLLBACKIMMEDIATE


注重:在利用办法2与3时,不要在必要的复原的数据库下实行,倡议在master数据库上面实行。在JOIN操作中(需要从多个数据表提取数据时),MySQL只有在主键和外键的数据类型相同时才能使用索引。

活着的死人 发表于 2015-1-18 12:11:40

一个是把SQL语句写到客户端,可以使用DataSet进行加工;

蒙在股里 发表于 2015-1-26 16:06:26

是要和操作系统进行Socket通讯的场景。否则建议慎重!

再现理想 发表于 2015-2-4 20:42:23

我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力

第二个灵魂 发表于 2015-2-10 09:29:36

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。

不帅 发表于 2015-3-1 09:37:56

如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。

仓酷云 发表于 2015-3-10 16:41:11

很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。

深爱那片海 发表于 2015-3-24 05:24:04

Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
页: [1]
查看完整版本: 毛病"由于数据库正在利用,以是没法取得对数据库的独有会见权"的办理计划 ...