SQL SERVER 下,批量在不同的数据库中执行相同的脚本
时间:2021-07-01 10:21:17
帮助过:57人阅读
@sql AS NVARCHAR(
300)
DECLARE @name AS NVARCHAR(
30)
DECLARE c
CURSOR FAST_FORWARD
FOR SELECT NAME
FROM sys.databases
WHERE name
LIKE ‘p%‘
OPEN c
FETCH NEXT FROM C
INTO @name;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = ‘USE‘ + quotename(
@name)
+ ‘select name,physical_name from sys.database_files‘;
EXEC(
@sql);
FETCH NEXT FROM c
INTO @name;
END
CLOSE c;
DEALLOCATE c;
3、使用微软没有公开的两个存储过程:下面展示了使用sp_msforeachdb存储过程在每个数据库上执行dbcc检查数据库的完整性和一致性。
DECLARE @sql VARCHAR(1000)
SELECT @sql = ‘dbcc checkdb([?])‘
EXEC sp_msforeachdb @sql
方法 2 和 3 的区别在于 2 可以选择执行的对象,而 3 不那么容易选择。
SQL SERVER 下,批量在不同的数据库中执行相同的脚本
标签:开头 51cto sql checkdb 脚本 文件 next cal 完成