SQL Server 2008清空数据库日志方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 2008清空数据库日志方法相关的知识,希望对你有一定的参考价值。

参考技术A

  使用SQL Server 清空数据库可用以下sql实现

  Backup Log DNName with no_log

  go

  dump transaction DNName with no_log

  go

  USE DNName

  DBCC SHRINKFILE ( )

  Go

  不过这个存储过程在SQL Server 中已经被取消 在 需要改用以下方式来清空数据库日志

  USE [master]

  GO

  ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT

  GO

  ALTER DATABASE DNName SET RECOVERY SIMPLE 简单模式

  GO

  USE DNName

  GO

  DBCC SHRINKFILE (N DNName_Log TRUNCATEONLY)

  GO

  USE [master]

  GO

  ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT

  GO

  ALTER DATABASE DNName SET RECOVERY FULL 还原为完全模式

  GO

lishixinzhi/Article/program/SQLServer/201311/22359

???Sql Server???SQL SERVER ????????????

?????????int   with   ??????   serve   span   ??????   inner   --   blog   

??????:???Sql Server???SQL SERVER ????????????

??????SQL SERVER 2005?????????????????????????????????????????????SQL SERVER 2005???????????????CTE?????????????????????CTE?????????????????????

??????CTE??????????????????Common Table Expression ???SQL SERVER 2005????????????????????????????????????

#??????????????????

1???sql

 1 Create table GroupInfo([Id] int,[GroupName] nvarchar(50),[ParentGroupId] int)
 2 
 3 Insert GroupInfo
 4 
 5 select 0,??????????????????,null union all
 6 
 7 select 1,??????????????????,0 union all
 8 select 2,??????????????????,1 union all
 9 select 3,??????????????????,1 union all
10 select 4,????????????????????????,2 union all
11 select 5,????????????????????????,2 union all
12 select 6,????????????????????????,3 union all
13 select 7,????????????????????????,3 union all
14 
15 select 8, ???????????????,0 union all
16 select 9, ?????????????????????,8 union all
17 select 10,????????????????????????,8 union all
18 select 11,???????????????????????????,9 union all
19 select 12,???????????????????????????,9 union all
20 select 13,??????????????????????????????,10 union all
21 select 14,??????????????????????????????,10 

2????????????

 ????????????

#????????????Demo

1???????????????????????????????????????????????????,???????????????????????????

 1 --????????????????????????????????????????????????
 2 with
 3 CTE
 4 as
 5 (
 6     select * from GroupInfo where Id=1
 7     union all
 8     select G.* from CTE inner join GroupInfo as G
 9     on CTE.Id=G.ParentGroupId
10 )
11 select * from CTE order by Id

 

 1 --????????????????????????????????????????????????
 2 with
 3 CTE
 4 as
 5 (
 6     select * from GroupInfo where Id=14
 7     union all
 8     select G.* from CTE inner join GroupInfo as G
 9     on CTE.ParentGroupId=G.Id
10 )
11 select * from CTE order by Id

2?????????????????????

 1 --??????????????????
 2 with
 3 CTE
 4 as
 5 (
 6     select Id,GroupName,ParentGroupId,GroupPath=CAST( GroupName as nvarchar(max)) from GroupInfo where Id=1
 7     union all
 8     select G.*,CAST(CTE.GroupPath+???//???+G.GroupName as nvarchar(max)) as GroupPath from CTE 
 9     inner join GroupInfo as G
10     on CTE.Id=G.ParentGroupId
11 )
12 select * from CTE

????????????

 3?????????????????????????????????????????????????????????

 1 --??????id????????????????????????????????????sort??????????????????sort??????????????????????????????????????????????????????
 2 WITH    
 3 CTE
 4 AS 
 5 ( 
 6     SELECT * ,CAST(RIGHT(???000??? + CAST([Id] AS VARCHAR), 3) AS VARCHAR(MAX)) AS sort FROM GroupInfo
 7     WHERE ParentGroupId = 0
 8     UNION ALL
 9     SELECT   GroupInfo.* ,CAST(sort + RIGHT(???000??? + CAST(GroupInfo.[Id] AS VARCHAR),3) AS VARCHAR(MAX)) AS sort
10     FROM CTE
11     INNER JOIN GroupInfo ON CTE.Id = GroupInfo.ParentGroupId
12 )
13 SELECT * FROM CTE ORDER BY sort 

 ????????????

4?????????????????????????????????????????????????????????

1 --??????????????????
2 WITH CTE AS (
3     SELECT *,1 AS [Level] FROM GroupInfo WHERE ParentGroupId=0
4     UNION ALL
5     SELECT G.*,CTE.Level+1 FROM GroupInfo as G 
6     JOIN CTE ON CTE.Id =G.ParentGroupId
7 )
8 SELECT * FROM CTE

 ????????????

 

以上是关于SQL Server 2008清空数据库日志方法的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008 清空删除日志文件

SQL Server 2008 清空删除日志文件(瞬间日志变几M)

SQL Server 2008 清空删除日志文件

SQL Server 2008 收缩日志 清空删除大日志文件

SQL Server 2008 收缩日志 清空删除大日志文件

如何清理sql server 2008日志