SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)

复制代码 代码如下:
DECLARE @name VARCHAR(25)
DECLARE @SQL VARCHAR(1000)
DECLARE @logid INT

DECLARE sysdatabase_name CURSOR FOR SELECT name FROM master.dbo.sysdatabases

OPEN sysdatabase_name

FETCH NEXT FROM sysdatabase_name INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN

IF ( @name NOT IN ('xxx')) --不需要进行日志收缩的数据库名
BEGIN
SET @SQL =' DECLARE @logid INT
USE ' + @name+'
SELECT @logid = fileid FROM sysfiles WHERE RIGHT(rtrim(filename),3) = ''ldf''

BACKUP LOG ' + @name+' WITH NO_LOG
DBCC SHRINKFILE (@logid) '

EXEC(@SQL)

END

FETCH NEXT FROM sysdatabase_name INTO @name

END

CLOSE sysdatabase_name
DEALLOCATE sysdatabase_name

SQL语句实现Sql Server 2005日志收缩(批量)
复制代码 代码如下:
-->Title:生成測試數據
-->Author:wufeng4552
-->Date :2009-09-15 08:56:03
declare @dbname nvarchar(20) --數據庫名稱
declare @sql nvarchar(max)
declare sysdbname cursor for select name from master.dbo.sysdatabases
open sysdbname
fetch next from sysdbname into @dbname
while @@fetch_status=0
begin
if (@dbname not in('xxx'))--不需要进行日志收缩的数据库名
begin
set @sql=--日誌文件ID
N' declare @logid int '+
N' use '+@dbname+
N' select @logid=fileid from sysfiles where right(ltrim(rtrim(filename)),3)=''ldf'''+
--截断事务日志
N' backup log '+@dbname+' with no_log '+
--收缩指定数据文件
N' dbcc shrinkfile(@logid)'
exec(@sql)
end
fetch next from sysdbname into @dbname
end
close sysdbname
deallocate sysdbname

时间: 2024-10-04 16:14:33

SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)的相关文章

SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)_MsSql

复制代码 代码如下: DECLARE @name VARCHAR(25) DECLARE @SQL VARCHAR(1000) DECLARE @logid INT DECLARE sysdatabase_name CURSOR FOR SELECT name FROM master.dbo.sysdatabases OPEN sysdatabase_name FETCH NEXT FROM sysdatabase_name INTO @name WHILE @@FETCH_STATUS = 0

关于SQL Server 2000和SQL Server 2005分布式事务能否协同工作的测试

server|分布式 关于SQL Server 2000和SQL Server 2005分布式事务能否协同工作的测试 MS DTC Report 1.      MS DTC 背景 2.      MSDTC 测试目的 3.      MSDTC 测试环境 3.1            本次验证测试环境: 3.2            环境配置 3.3            验证MSDTC 3.4            创建验证用表 4.      Linked Server测试 5.     

把这四条sql语句从sqlsever变成oracle的sql语句,求帮忙

问题描述 把这四条sql语句从sqlsever变成oracle的sql语句,求帮忙 1C 1.SELECT top 1 MENUID+1 from app_menu ORDER BY CAST(MENUID AS int) desc 2.SELECT top 1 idfileNamefilePathcreateTimemd5fileSize FROM VIS_file WHERE md5=#md5# 3. SELECT top 1 USERIDREALNAMEGENDEROTELOEMAILQQ

SQL Server 2000向SQL Server 2008 R2推送数据图文教程_mssql2008

最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他"服务器"向我们服务器推送的方式实现.我们服务器使用的是sql server 2008 R2,其他"服务器"使用的都是SQL Server 2000,还都是运行在Windows XP上的,整个过程遇到了一些问题,也参考了一些文档,最终费了好多事才算搞定. [一.配置分发服务器] SQLServer 2000的复制服务包括三个角色:发布服务器.分发服务器和订阅服务器,关系如图1所示. 图1 其中

一条很复杂的sql语句与n条简单的sql语句比,哪个效率高?

问题描述 都是在连接open以后提交语句,一条复杂语句就是操作全由数据库完成,多条简单点的语句是一部分工作由数据库完成,一部分由C#程序完成 解决方案 解决方案二:自己顶下,大神快来解决方案三:肯定是一条啊解决方案四:引用2楼lstcyzj的回复: 肯定是一条啊 如果是操作很复杂不会影响性能么解决方案五:多条简单点的语句其实就是把一些计算放在程序里做了,查询和更新用的sql语句解决方案六:自己顶下,,,,解决方案七:引用3楼newlovedew的回复: 如果是操作很复杂不会影响性能么 这真不能一

动态sql语句-求助!!这个动态SQL语句怎么写???

问题描述 求助!!这个动态SQL语句怎么写??? getHibernateTemplate().find("from Bookinfo where bookname=key"; 其中bookname和key都是jsp页面传过来的值,依据情况是不固定的,请问该怎么写这个动态SQL语句? 解决方案 可以将 from Bookinfo where bookname=key作为单独的string,在放入find之前Bookinfo=request.getP() ,然后放入find 里面.或者类

怎样实现把第一条SQL语句的结果作为第二条SQL语句的参数

问题描述 第一条SQL语句selectMANAGERfromDepartmentwhereDEPT_IDin(selectDEPT_IDfrom[User]where[USER_ID]='lisi')第二条SQL语句select*fromDiarywhere[USER_ID]in('第一条SQL语句')----括号里是字符串 解决方案 解决方案二:写存储过程解决方案三:急.........解决方案四:怎么写存储过程啊求教解决方案五:select*fromDiarywhere[USER_ID]in

使用sqlparse分析SQL语句,及自己写的SQL分析语句

备忘, 以后写的时候可以参考. #!/usr/bin/env python # -*- coding: utf-8 -*- import sqlparse import re sql = """ create table TEST_MODULE; create table TEST_MODULE ( MODULE_ID NUMBER NOT NULL, MODULE_NAME VARCHAR2(64) NOT NULL, USER_ID VARCHAR2(32) NOT NU

得到oracle分页SQL语句的函数-三层嵌套sql

     //获取Oracle分页语句 传入参数:strsql:查询所有记录的语句 pageno:当前页  pagesize:一页显示的记录数) public static String getOnePageSql(String strSql, int pageSize, int pageNo) {  return new StringBuffer("select   *   from (select   A.*,rownum   as   my_rownum   from (")