有什么方法可以在不将其记录到日志文件的情况下进行 DML 操作?
例如,当我在数据库中插入一行时,无论是否使用事务,此操作都将记录在日志文件中。但我不想在日志文件中记录这个操作。
有什么方法可以在不将其记录到日志文件的情况下进行 DML 操作?
例如,当我在数据库中插入一行时,无论是否使用事务,此操作都将记录在日志文件中。但我不想在日志文件中记录这个操作。
没有永不。不可能。
每个操作都被记录下来是有原因的:如果它中途失败了怎么办?服务器崩溃?等等等等
如果你不想要这个,那么使用我真的会考虑使用非 ACID NoSQL 替代品。
SQL Server 将始终将插入写入日志文件。当服务器重置时,它需要该信息才能将数据库恢复到一致的状态。
您可以通过选择恢复模式来更改日志记录的影响:
alter database YourDb set recovery { FULL | BULK_LOGGED | SIMPLE }
在简单模式下,SQL Server 只记录正在运行的事务,并开始重用不再需要的部分日志。在简单模式下,日志文件通常很小。
如果要在插入操作后删除日志,可以使用:
alter database YourDb set recovery simple with no_wait
dbcc shrinkfile(YourDbLog, 1)
alter database YourDb set recovery <<old model here>>
请注意,这会删除所有日志。运行此命令后,您只能使用恢复上次完整备份。