--如果在不同的数据库中要执行同样的脚本,比如创建一个表,视图,函数等操作。
print'#####begin db script ##### '
execsp_msforeachdb
'use [?]if ''?'' not in(''master'', ''model'', ''msdb'', ''tempdb'', ''adventureworks'' )
begin
if not exists
(select * frominformation_schema.tables where table_name = ''mytable'')
begin
create table[dbo].[mytable](column_1 varchar(50) null, column_2 datetime null)
print '' table created indatabase ('' + db_name() + '')''
end
else
print '' table present in database('' + db_name() + '')''
end '
print'#####db script completed #####'
--备份所有的用户数据库
execsp_msforeachdb'if db_id(''?'')>4 backup database [?] to disk =''c:\?.bak'' with init, compression;'
--查看所有表数据使用空间和索引使用空间爱你
exec sp_MSforeachtable@command1="print
'?' exec sp_MStablespace '?'"
分享到:
相关推荐
系统存储过程sp_MSforeachtable和sp_MSforeachdb
本文介绍了master数据库中两个非常有用的存储过程:sp_MSForEachDB和sp_MSForEachTable。
Sp_MSForEachTable和sp_MSForEachDb是SQL Server的两个系统存储过程,存在于Master数据库当中
本文介绍了master数据库中两个非常有用但在SQL Server在线教科书中没有提到的存储过程:sp_MSForEachDB、sp_MSForEachTable。这些系统过程对于处理以下任务非常方便,如判断使用的存储空间大小、行数、用户表索引...
可以结合sp_MSforeachdb再遍历所有用户数据库查看所有表的尺寸大小,注意它的参数@sql不能超过nvarchar(2000),这里就不贴出代码了。另外还可以定期运行并将结果保存下来,以便观察数据变化趋势。 查询单个数据库的...
exec sp_msforeachdb 'use [?]; select DB_NAME() AS DbName, CONVERT(varchar(20),DatabasePropertyEx(''?'',''Status'')) , CONVERT(varchar(20),DatabasePropertyEx(''?'',''Recovery'')), sum(size)/128.0 ...
].sys.sp_change_users_login @Action = ”Auto_Fix” , @UserNamePattern = ”qa” , @LoginName = null , @Password = ”abc” ‘ exec sp_msforeachdb @cmd 您可能感兴趣的文章:如何将Oracle的一个大数据表快速...