日期:2014-05-17  浏览次数:20451 次

删除某数据库中除个别用户表中的数据
需求:自己开发的系统的数据库中有很多自己创建的表,平时产生了很多测试数据,要把系统部署到实际应用环境时,需要把业务测试数据删除。但一些基本配置的数据表不用删除。
请问要如何使用SQL 语句来把大部分数据表中的内容删除,而一些数据表的数据又不删除。

举例说明:
A表(商品表)
B表(报价表)
C表(订单表)
D表(销售表)
....

Y表(配置)
QQ表(配置)

我想通过SQL语句实现如上需求,请问有没有什么简单的办法?

------解决方案--------------------
truncate table 要刪除的表1
truncate table 要刪除的表2
truncate table 要刪除的表3
......

應該沒有更簡單的辦法了吧.
------解决方案--------------------
select 'truncate table '+name from sys.sysobjects where xtype='u' and name not in(不需要删除的表)
根据要删除表的多少可以更改In条件为in(需要删除的表)

把结果从表格里拷贝出来,全部执行就好了
------解决方案--------------------
--sp_MSforeachtable循环执行SQL
exec sp_MSforeachtable 'Delete from ? where  object_name(object_id(''?'')) like ''%你的表名关键字%'''

exec sp_MSforeachtable 'if object_name(object_id(''?'')) like ''%你的表名关键字%'' truncate table ?'