存档

文章标签 ‘数据库’

SQL Server 备份数据库时提示“无法打开备份设备”

2016年12月5日 没有评论

在备份SQL Server 数据库时候,想要将备份文件放在非系统盘目录下,结果提示错误信息:

备份对于服务器“服务器名”失败。无法打开备份设备’f:\abc.bak’。出现操作系统错误5(拒绝访问。)。

一直不知道是什么原因,每次都是偷懒拉倒,还是备份到SQL Server默认的那个层级很深的目录里。今天就去搜索了下,网上说是SQL Server的一个Bug 坑。

解决方法是:不能将备份文件放在盘符的根目录下,必须放在一个非根目录下,否则就会报错。

试了一下,果然就解决了,太神奇了。

分类: 日常 标签:

未能为数据库 ‘*’中得对象’*’分配空间,因文件组’PRIMARY’已满

2015年10月11日 没有评论

最近几天发现网站数据没有变化,还以为是数据同步发生了错误,今天登录服务器,日志显示了大量的未能为数据库 ‘*’中得对象’*’分配空间,因文件组’PRIMARY’已满错误。

网上搜索发现是数据库文件的体积有限制导致,后来发现数据库原来是在虚拟主机运行的,运营商对数据库做了限制,而我迁移到自己的服务器上后直接附加的数据库,所以这个限制也一起带过来了。

解决方法也比较简单,选择数据库,右键属性, 在“文件”标签页里设置数据库为不受限制,确定即可。

分类: 日常 标签: ,

清空数据库表

2012年2月18日 没有评论

最近在不断地清空数据库的表,人工操作起来稍显的麻烦了点,放上SQL语句,以备后用。

–/第1步**********删除所有表的外键约束*************************/

DECLARE c1 cursor for select ‘alter table [‘+ object_name(parent_obj) + ‘] drop constraint [‘+name+’]; ‘ from sysobjects where xtype = ‘F’ open c1 declare @c1 varchar(8000) fetch next from c1 into @c1 while(@@fetch_status=0) begin exec(@c1) fetch next from c1 into @c1 end close c1 deallocate c1

–/第2步**********删除所有表*************************/

declare @sql varchar(8000) while (select count(*) from sysobjects where type=’U’)>0 begin SELECT @sql=’drop table ‘ + name FROM sysobjects WHERE (type = ‘U’) ORDER BY ‘drop table ‘ + name exec(@sql) end

分类: 日常 标签: ,