我有一个包含许多数据库的Microsoft SQL Server 2008,其中大多数都有一个Logs表。我希望能够安排一个脚本来运行并截断每个数据库中的Logs表(动态)。我想我必须得到每个用户数据库的名称,然后在包含Logs表的数据库中截断表Logs。
我最终使用的陈述是:
EXEC sp_MSForEachDB 'Use [?]; IF EXISTS (SELECT * FROM sys.tables WHERE name = "Logs" and type="U")TRUNCATE TABLE Logs'
答案 0 :(得分:7)
这有点破解,因为存储过程没有记录,但试试这个:
EXEC sp_MSForEachDB 'Use ?; TRUNCATE TABLE Logs'
答案 1 :(得分:-1)
2008年最简单的事情是,如果它当时没有在生产中使用,那么
编写一个在动态sql中执行此操作的脚本
Alter Database <mydb> set recovery simple
go
Checkpoint
go
Alter Database <mydb> set recovery full
go