Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 3 of 3 total
Thread Delete all indexes for all tables.
Wed, Dec 5 2012 11:23 AMPermanent Link

Abdulaziz Al-Jasser

Hi,

I am trying to write a script that will delete (DROP) all indexes for all tables.  I started with the bellow code but cannot move on.  Any idea how to that?


DECLARE sTableName  VARCHAR;
DECLARE sIndexName  VARCHAR;
DECLARE qryTables   CURSOR FOR sSQL1;
DECLARE qryIndexes  CURSOR FOR sSQL2;

PREPARE sSQL1 FROM 'SELECT Name FROM Information.Tables';

OPEN qryTables;

FETCH FIRST FROM qryTables('Name') INTO sTableName;

WHILE NOT EOF(qryTables) DO


     FETCH NEXT FROM qryTables('Name') INTO sTableName;
END WHILE;
CLOSE qryTables;

Regards,
Abdulaziz Jasser
Wed, Dec 5 2012 1:36 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Abdulaziz


There's a better table to use - Information.Indexes. It would go something like


DECLARE sTableName  VARCHAR;
DECLARE sIndexName  VARCHAR;
DECLARE qryTables   CURSOR FOR sSQL1;
DECLARE Dropping VARCHAR;

PREPARE sSQL1 FROM 'SELECT TableName, Name FROM Information.Indexes';

OPEN qryTables;

FETCH FIRST FROM qryTables('TableName',Name') INTO sTableName, sIndexName;

WHILE NOT EOF(qryTables) DO
     SET Dropping = 'DROP '+sIndexName+' FROM '+sTableName;
     EXECUTE IMMEDIATE Dropping;
     FETCH NEXT FROM qryTables('TableName',Name') INTO sTableName, sIndexName;;
END WHILE;
CLOSE qryTables;

totally untested

Roy Lambert [Team Elevate]
Thu, Dec 6 2012 3:00 AMPermanent Link

Abdulaziz Al-Jasser

Roy,

Big thanks....
Regards,
Abdulaziz Jasser
Image