在c#里如何编写删除sql中多个表中的数据的代码
3个回答
展开全部
---清空数据库db_test中所有用户表中的数据
use db_test
go
CREATE PROCEDURE
sp_DeleteAllData
AS
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'--禁用约束
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'--禁用触发器
EXEC sp_MSForEachTable 'DELETE FROM ?'--清数据
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'--还原约束
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'--还原触发器
EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'--检查表内数据
go
exec sp_DeleteAllData
--这样就会删除 db_test库中,所有表的数据,但是表结构仍然存在,操作相对危险,慎用。希望对你有帮助
use db_test
go
CREATE PROCEDURE
sp_DeleteAllData
AS
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'--禁用约束
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'--禁用触发器
EXEC sp_MSForEachTable 'DELETE FROM ?'--清数据
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'--还原约束
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'--还原触发器
EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'--检查表内数据
go
exec sp_DeleteAllData
--这样就会删除 db_test库中,所有表的数据,但是表结构仍然存在,操作相对危险,慎用。希望对你有帮助
展开全部
几个表存在关联吧?这样的数据牵涉到数据的完整性.
常用方法:
1:在主表上建立on deleted的触发器,在删除主表数据时自动删除子表相关行.这样只需要调用删除主表的sql语句就可以.
2:使用(带有事务处理的)存储过程,在存储过程中将关联的表依次做数据删除,好处是程序只需要调用一次,增加事务处理的好处是保证删除的一次性完成,有一张表不成功则过程回滚.
删除的次递:从子往父,先删除外键数据,再删除主表.如果存在多级关联,逻辑一样.
常用方法:
1:在主表上建立on deleted的触发器,在删除主表数据时自动删除子表相关行.这样只需要调用删除主表的sql语句就可以.
2:使用(带有事务处理的)存储过程,在存储过程中将关联的表依次做数据删除,好处是程序只需要调用一次,增加事务处理的好处是保证删除的一次性完成,有一张表不成功则过程回滚.
删除的次递:从子往父,先删除外键数据,再删除主表.如果存在多级关联,逻辑一样.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接把删除多个表数据的语句写在一起就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询