Automatizar truncado de tablas

01/12/2006 - 11:36 por Jesus Suarez | Informe spam
Hola a todos

como puedo hacer para borarr de forma automatica todas las talbas de una
base de datos que comienzen por la palabra sistemas_td, ya que tengo
problemas con las claves foraneas.
 

Leer las respuestas

#1 J.A. García Barceló
01/12/2006 - 11:55 | Informe spam
Una cosa es truncado de tablas y otra el borrado de tablas. Aqui tienes un
script que itera (con cursores) sobre las tablas like 'sistemas_td%' para
hacer un drop table
Esto te BORRA las tablas, que es diferente a truncarlas (borrar los datos de
las tablas). Si lo que quieres es truncar, utiliza TRUNCATE TABLE.


DECLARE @N nvarchar(2048),
@sql nvarchar(2048)

DECLARE MiCursor CURSOR LOCAL FOR
select name from sys.objects where name like 'sistemas_td%' and type='U'
order by name

OPEN MiCursor
FETCH NEXT FROM MiCursor INTO @N
WHILE (@@FETCH_STATUS <> -1) BEGIN
IF (@@FETCH_STATUS <> -2) BEGIN

SELECT @sql = N'DROP TABLE ' + QUOTENAME(@N)
PRINT @sql
efectivamente EJECUTAR el borrado de las tablas
END
FETCH NEXT FROM MiCursor INTO @N
END
CLOSE MiCursor
DEALLOCATE MiCursor


Pregunta para los acérrimos anticursores: Entiendo vuestra postura y yo
también intento no usarlos pero... ¿se podría hacer esto mismo sin cursores?

Un saludo.

J.A. García Barceló
http://jagbarcelo.blogspot.com

"Jesus Suarez" escribió en el mensaje
news:
Hola a todos

como puedo hacer para borarr de forma automatica todas las talbas de una
base de datos que comienzen por la palabra sistemas_td, ya que tengo
problemas con las claves foraneas.

Preguntas similares