Sql server 使用查询结果创建作业(Sql 2008)
早上好,朋友们 有没有办法用这个查询的结果集来运行procSql server 使用查询结果创建作业(Sql 2008),sql-server,sql-server-2008,jobs,proc,Sql Server,Sql Server 2008,Jobs,Proc,早上好,朋友们 有没有办法用这个查询的结果集来运行proc SELECT 'USE [' + d.name + N']' + CHAR(13) + CHAR(10) + 'ALTER DATABASE [' + d.name + N'] SET RECOVERY SIMPLE ' + + 'DBCC SHRINKFILE (N''' + mf.name + N''' , 0, TRUNCATEONLY)' + CHAR(13) + CHAR(10) + CHAR(13) + CH
SELECT
'USE [' + d.name + N']' + CHAR(13) + CHAR(10) +
'ALTER DATABASE [' + d.name + N'] SET RECOVERY SIMPLE ' +
+ 'DBCC SHRINKFILE (N''' + mf.name + N''' , 0, TRUNCATEONLY)'
+ CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10)
+ 'ALTER DATABASE [' + d.name + N'] SET RECOVERY full'
FROM
sys.master_files mf
JOIN sys.databases d
ON mf.database_id = d.database_id
WHERE d.database_id > 4;
此查询将列出如下内容:
使用[SEDI_4649]ALTER DATABASE[SEDI_4649]设置恢复简单DBCC收缩文件N'SEDI_SQL_log',0,截断仅更改数据库[SEDI_4649]设置完全恢复
使用[SEDI_4650]ALTER DATABASE[SEDI_4650]设置恢复简单DBCC收缩文件N'SEDI_SQL_dat',0,截断仅更改数据库[SEDI_4650]设置恢复完全
我所需要做的就是复制结果,并在查询窗口中运行
Greate,我现在所有的dbs都缩小了,并记录了日志
但是…有没有办法通过作业来运行此功能
我一直在尝试创建一个proc,将结果保存在一个.txt文件中,作业执行这个.txt文件,但没有成功
谢谢你的帮助
SQL 2008
新建作业->步骤->新建->粘贴查询。。。并安排它
将查询更改为使用动态sql 然后使用作业
declare @sql varchar(max)
SELECT
set @sql = 'USE [' + d.name + N']' + CHAR(13) + CHAR(10) +
'ALTER DATABASE [' + d.name + N'] SET RECOVERY SIMPLE ' +
+ 'DBCC SHRINKFILE (N''' + mf.name + N''' , 0, TRUNCATEONLY)'
+ CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10)
+ 'ALTER DATABASE [' + d.name + N'] SET RECOVERY full'
exec (@sql)
FROM
sys.master_files mf
JOIN sys.databases d
ON mf.database_id = d.database_id
WHERE d.database_id > 4;
只需创建proc并将其粘贴到查询和调度上即可。这就是我想做的。但我认为它只会返回结果集,而不会执行列表。但我知道,明天我会测试。谢谢将查询更改为使用动态sql,然后使用作业