批量修改所有库的恢复模式和DB所有者

/*
修改所有用户数据库的恢复模式为简单模式
*/
EXEC sp_msforeachdb ‘
DECLARE @dbname VARCHAR(30)
SET @dbname=‘‘?‘‘
DECLARE @exsql VARCHAR(500)
IF(@dbname not in (
SELECT name FROM sys.databases WHERE database_id<=4 -- 非系统表
or recovery_model_desc=‘‘SIMPLE‘‘ -- 非简单恢复模式
or name=‘‘ReportServer‘‘ or name=‘‘ReportServerTempDB‘‘-- 非报表库
OR is_read_only=1 -- 非只读
OR state=6 -- 非脱机
or is_distributor=1 -- 非订阅库
or is_published=1 -- 非发布库
or is_subscribed=1 -- 非分发库
UNION
SELECT DB_NAME(database_id) FROM sys.database_mirroring WHERE mirroring_role IS NOT NULL -- 非镜像库
))
BEGIN
SELECT @dbname=name FROM master.sys.databases WITH ( NOLOCK ) WHERE [email protected]
SET @exsql =‘‘use master alter database ‘‘[email protected]+‘‘ set recovery simple with no_wait‘‘
begin try
EXEC(@exsql)
print @dbname
end try
begin catch
select @dbname+ERROR_MESSAGE()
end catch
END

/*
用于数据库还原后,修改所有数据库的所有者为sa(防止ssb不通)
*/

EXEC sp_MSforeachdb ‘
DECLARE @dbname NVARCHAR(100);
DECLARE @sql NVARCHAR(max);
SELECT @dbname = ‘‘?‘‘;
if (@dbname not in (
SELECT name FROM sys.databases WHERE database_id<=4 -- 非系统表
--or recovery_model_desc=‘‘SIMPLE‘‘ -- 非简单恢复模式
or name=‘‘ReportServer‘‘ or name=‘‘ReportServerTempDB‘‘-- 非报表库
OR is_read_only=1 -- 非只读
OR state=6 -- 非脱机
or is_distributor=1 -- 非订阅库
or is_published=1 -- 非发布库
or is_subscribed=1 -- 非分发库
UNION
SELECT DB_NAME(database_id) FROM sys.database_mirroring WHERE mirroring_role IS NOT NULL -- 非镜像库
))
begin
SELECT @dbname=name FROM master.sys.databases WITH ( NOLOCK ) WHERE [email protected]
set @sql = ‘‘use ‘‘ + @dbname +
‘‘ exec sp_changedbowner ‘‘‘‘sa‘‘‘‘ ‘‘
begin try execute (@sql) print @dbname end try
begin catch select @dbname+ERROR_MESSAGE() end catch
end

时间: 2024-10-06 23:39:02

批量修改所有库的恢复模式和DB所有者的相关文章

ubunut在系统恢复模式下无法修改root密码的分析和解决

前些日子本猫的ubuntu 14.10貌似出了点问题,想修改下root密码,但是无奈原系统有错正常情况下无法修改啊,这是逼我重装的节奏吗? 在ubuntu开机后立即按住left_shift不放,调出grub菜单.因为我没装双系统,所以默认grub菜单是隐藏的.依次选择"高级选项"->xxx(recovery mode)->root.咦,还是要root密码才可以进入恢复模式的控制台呢!遂ctl+d,再次重启系统,同样进入xxx(recovery mode)主界面后(不要按回车

关于Entity Framework采用DB First模式创建后的实体批量修改相关属性技巧

Entity Framework采用DB First模式创建实体是比较容易与方便的,修改已创建的实体在个数不多的情况下也是没问题的,但如果已创建的实体比较多,比如10个实体以上,涉及修改的地方比较多的时候,那么这个时候采用可视化编器就不再那么方便了,而应该采用以XML的形式来呈现实体数据,然后用我们常用的编辑手段,复制.粘贴.剪切来快速实现批量修改,下面就来说说批量修改的方法: 1.找到Entity Framework采用DB First模式创建的文件,文件以.edmx结尾,如下图示: 2.选中

Unity3D Editor模式下批量修改prefab

最经遇到一个需要批量修改已经做好的prefab的问题,查了一些资料最终实现了但是还是不够完美,通过学习也发现unity的编辑器功能还是非常强大的.废话不多说直接上代码: 1 [ExecuteInEditMode] 2 [MenuItem("Tools/RecordPoint Add Flame")] 3 private static void RecordPointAddFlame() 4 { 5 GameObject twoSphere = AssetDatabase.LoadAss

chpasswd: 非交互模式批量修改密码

命令:chpasswd批量修改用户密码 工作原理:从系统的标准输入读入用户的名称和口令,并利用这些信息来更新系统上已存在的用户的口令 语法:1:# echo 用户名:密码 | chpasswd2:# chpasswd < doiido.txt 参数:-e :如果使用了-e选项,口令将只能以加密的方式传递如果未使用-e选项,口令将按明文的形式传递 注意事项1:用户名必须是系统上已存在的用户2:普通用户没有使用这个指令的权限3:如果输入文件是按非加密方式传递的话,请对该文件进行适当的加密.4:指令文

解决简单恢复模式下产生的日志增长

简介 最近测试服务器进行数据归档,其间程序员发现一个问题,空间不足,我查看原因发现日志文件暴涨.然后将数据库改为简单恢复模式,但是依然存在这个问题.经过查询资料发现了日志文件在简单模式下依然增加的原因. Simple概念 Simple恢复模式也叫做”Checkpoint with truncate log“,其实这个名字更形象,在Simple模式下,SQL Server会在每次checkpoint或backup之后自动截断log,也就是丢弃所有的闲置日志记录,仅保留用于实例启动时自动发生的ins

sql server 备份与恢复系列三 简单恢复模式下的备份与还原

原文:sql server 备份与恢复系列三 简单恢复模式下的备份与还原 一.概述 前面讲了备份的一些理论知识,这篇开始讲在简单恢复模式下的备份与还原.在简单模式下是不能做日志备份的,发生灾难后,数据库最后一次备份之后做的数据修改将是全部丢失的,所以在生产环境下,数据又很重要,一般不建议使用这种模式. 例如对一个数据库有5次完整数据备份,时间是t5,  之后发生灾难,就会部丢失. 当数据库越来越大,完整备份时间会越来越长,为了减少丢失风险,引入差异备份.例如下图演示:在第一次建立数据库完整备份后

SQL Server数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式

SQL Server数据库的三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式 这篇文章主要介绍了SQL Server数据库的三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式,需要的朋友可以参考下 如何图形界面下修改恢复模式 找到你想修改的数据库 右键 > 属性  > 左侧 选项既可看到 1.Simple 简单恢复模式, Simple模式的旧称叫"Checkpoint with truncate log",其实这个名字更形象,在Simple模式下,SQ

UE4灯光批量修改插件(如:把关卡中选中的灯光的光照强度同时乘以1.5倍)(C++篇)

C++:首先我们需要创建一个插件类,个人建议使用UE4插件界面创建,该好处会把一些基础类给你创建出来,我使用的是编辑器模式类插件 该插件可在窗口模式那里创建新的窗口 类创建好之后我们就可以看见UE4自身帮你创建了三个类(XXclass,XXModeclass,XXModeToolkitclass),我们写UI层逻辑主要是在XXModeToolkitclass这个类里面写,该类里面就Init()函数就是用来写SlateUI的,其中的ToolkitWidget变量是该SlateUI的最低层的UI,一

利用shell脚本批量修改表

最近公司里因为开发新功能,程序员需要快速在某一个库里的所有表添加字段,于是就用shell脚本简单快速实现批量修改表添加字段 #!/bin/bash export mysql_bin=/usr/local/mysql/bin export database=database export tables=`$mysql_bin/mysql -Bse "use ${database};show tables;"` for i in ${tables}         do