MSSQL 清空日志 删除日志文件

MSSQL 清空日志 删除日志文件,第1张

最近的项目主要做数据的归档 把数据从一个数据库拉到另一个数据库 造成新数据库的日志文件非常大 或者数据库在使用过程中会使日志文件不断 增加 使得数据库的性能下降 并且占用大量的磁盘空间 于是想把日志文件删除 最简单就是先分离数据库 》删除日志文件 》最后附加数据 我这里需要在 SSIS中调用 所以已sql脚本为主

两种简单的清除日志的方法

一分离附加法 首先把数据库分离 分离数据库之前一定要做好数据库的全备份 选择数据库——右键——任务——分离 其中药勾选删除连接!

分离后在数据库列表将看不到已分离的数据库 删除数据库的LOG文件数据库文件夹下的对应数据库的 ldf文件 附加数据库 附加的时候会提醒找不到log文件 到时附加上后会自动创建一个新的日志文件 从而达到清理数据库的目的

二 sql语句清除mssql日志 DUMP TRANSACTION TestDB WITH NO_LOG 清除日志 DBCC SHRINKFILE ( TestDB_log ) 收缩数据库文件 BACKUP LOG TestDB WITH NO_LOG 截断事务日志 该命令在SQL Server 也是不支持 在SQL Server 和 可以使用

首先我们需要获取数据库文件的路径

declare @logfilename varchar( )  declare @datafilename varchar( ) select @logfilename=physical_name from sys database_files where type= select @datafilename=physical_name from sys database_files where type=

然后切换到master下 分离数据库

use master exec sp_detach_db @dbname= TestVFA ;

紧接下来就是删除数据库 日志文件 Remove file DECLARE @Result int DECLARE @FSO_Token int EXEC @Result = sp_OACreate Scripting FileSystemObject @FSO_Token OUTPUT EXEC @Result = sp_OAMethod @FSO_Token DeleteFile NULL @logfilename EXEC @Result = sp_OADestroy @FSO_Token 最后就是附加数据库 exec sp_attach_single_file_db @dbname= TestVFA @physname=@datafilename

注意 默认Ole Automation Procedures 是禁用的我们需要启用它

lishixinzhi/Article/program/MySQL/201311/29584

这是嵌入SQL的语法,比如EC就是在C语言里面增加SQL功能的,除了可以使用所有标准的C语言语法以外,可以使用EXEC SQL(或者$符号)开始的一行书写SQL语句。

EXEC SQL include sqlca

包含一个文件,类似C、ASP的include语句,把那个文件sqlca的内容包含到当前位置

EXEC SQL BEGIN DECLARE SECTION

开始申明,下面的一段语句将是SQL系统的变量申明语句

EXEC SQL END DECLARE SECTION

申明语句结束

exec sp_rename 'b','a'

把b表重命名a表

sp_rename 存储过程意思:

数据库中更改用户创建对象的名称

Exec解释意思为:

执行 Transact-SQL 批中的命令字符串、字符串或执行下列模块之一:系统存储过程、用户定义存储过程、标量值用户定义函数或扩展存储过程。

如有问题可以追问,我当及时回答

希望能帮到你!

以上就是关于MSSQL 清空日志 删除日志文件全部的内容,包括:MSSQL 清空日志 删除日志文件、EXEC SQL等等,这些都是什么意思、SQL 下面语句中的 exec sp_rename 'b','a'是什么意思主要是exec的意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9807910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存