Como um único script seria truncar uma tabela específica em cada banco de dados?

votos
0

Eu tenho um Microsoft SQL Server 2008 com muitos bancos de dados e a maioria deles tem uma mesa de Logs. Eu gostaria de ser capaz de programar um script para executar e truncar a tabela Logs em cada um desses bancos de dados (dinamicamente). Imagino eu tenho que pegar o nome de cada banco de dados de usuário, em seguida, truncar os logs da tabela nos bancos de dados que contêm uma tabela Logs.

A declaração acabei usando é:

EXEC sp_MSForEachDB 'Use [?]; IF  EXISTS (SELECT * FROM sys.tables WHERE name = Logs and type=U)TRUNCATE TABLE Logs'
Publicado 19/05/2009 em 20:43
fonte usuário
Em outras línguas...                            


2 respostas

votos
7

É um pouco de corte, uma vez que o procedimento armazenado não está documentada, mas tente o seguinte:

EXEC sp_MSForEachDB 'Use ?; TRUNCATE TABLE Logs'
Respondeu 19/05/2009 em 20:47
fonte usuário

votos
-1

Em 2008, a coisa mais fácil de fazer se se não na produção de uso no momento é este

Escrever um script que faz isso em sql dinâmico

Alter Database <mydb> set recovery simple
go

Checkpoint
go

Alter Database <mydb> set recovery full
go
Respondeu 19/05/2009 em 21:01
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more