$tblarray = array("abc1","abc2","abc3");
$sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE table_type ='base table' and TABLE_CATALOG='mydb' order by TABLE_NAME";
$res = mssql_query($sql);
while($rowTable = mssql_fetch_array($res))
{
if(in_array($rowTable['TABLE_NAME'],$tblarray))
{
$sqlDel = "SELECT DISTINCT concat('TRUNCATE TABLE',TABLE_NAME,';')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE 'abc%' AND TABLE_SCHEMA = 'mydb'";
$res_sqlDel = @mssql_query($sqlDel);
}
}
首先,我从数据库中获取所有表名,然后截断特定表。但是这段代码不能正常工作。
答案 0 :(得分:0)
select Table_name from information_schema.tables where table_schema='YOUR_DB_NAME';
将返回所有表名
1)迭代结果集。
2)创建另一个SQL查询,如
$query= "truncate table ".$resultSetRow['Table_name'];
在循环中执行它。基本上它会迭代结果集并逐个截断所有表。