MSSQL 删除数据库表数据
2024-09-01 03:04:03
--删除数据库表数据 慎用
create PROCEDURE sp_DeleteAllData
AS
declare @tblName nvarchar(50)
declare @sNOCHECKCONSTRAINT nvarchar(500)
declare @sDISABLETRIGGER nvarchar(500)
declare @sDeleteTable nvarchar(500)
declare @sCHECKCONSTRAINT nvarchar(500)
declare @sENABLETRIGGER nvarchar(500) begin try
begin tran
-- 失效索引,触发器
declare tb cursor for select name from sys.sysobjects where xtype='U' and category=0
open tb
fetch next from tb into @tblName
while @@fetch_status=0
begin
set @sNOCHECKCONSTRAINT ='ALTER TABLE ' + @tblName+ ' nocheck CONSTRAINT ALL'
set @sDISABLETRIGGER ='ALTER TABLE ' + @tblName+ ' DISABLE TRIGGER ALL'
EXEC sp_MSForEachTable @sNOCHECKCONSTRAINT
EXEC sp_MSForEachTable @sDISABLETRIGGER
fetch next from tb into @tblName
end
close tb
deallocate tb
-- 删除数据
declare tb1 cursor for select name from sys.sysobjects where xtype='U' and category=0
open tb1
fetch next from tb1 into @tblName
while @@fetch_status=0
begin
set @sDeleteTable ='delete from ' + @tblName
EXEC sp_MSForEachTable @sDeleteTable
print '删除数据表'+@tblName +'完成'
fetch next from tb1 into @tblName
end
close tb1
deallocate tb1
--恢复索引,触发器
declare tb2 cursor for select name from sys.sysobjects where xtype='U' and category=0
open tb2
fetch next from tb2 into @tblName
while @@fetch_status=0
begin
set @sCHECKCONSTRAINT ='ALTER TABLE ' + @tblName+ ' check CONSTRAINT ALL'
set @sENABLETRIGGER ='ALTER TABLE ' + @tblName+ ' ENABLE TRIGGER ALL'
EXEC sp_MSForEachTable @sCHECKCONSTRAINT
EXEC sp_MSForEachTable @sENABLETRIGGER
fetch next from tb2 into @tblName
end
close tb2
deallocate tb2
commit tran
end try
begin catch
rollback
end catch
GO
最新文章
- linux iptables常用命令之配置生产环境iptables及优化
- MySQL复制配置(多主一从)
- 关闭Android/iPhone浏览器自动识别数字为电话号码
- [问题2014S07] 复旦高等代数II(13级)每周一题(第七教学周)
- 使用NodeJS将XML解析成JSON及性能比较
- python-转换成exe文件(py2exe)
- 解决sencha touch显示.JSON包含中文数据时显示乱码问题
- Android粘贴板的运用
- HTML5 API 浏览器支持情况检测
- [Twisted] deferred
- 32G sd卡格式化成fat
- js 去掉空格
- MySQL关联查询总结
- tomcat的事件监听
- Sublime text 3编辑python时出现方框的解决办法
- [离散时间信号处理学习笔记] 8. z逆变换
- swap的实现(没有中间变量)
- serlvet中的过滤器filter
- MCS-51 单片机的中断系统
- python-day43--多表查询
热门文章
- (办公)记事本_Linux帮助命令
- 参加杭州 2019 AI Bootcamp有感与总结(2)
- 通过Ajax的访问zuul的跨域问题解决方案
- 数据库查询性能 LinqDB vs Sql查询
- WPF之实现控件内容拖动
- MySQL的表定义语法
- mysql 写入中文乱码
- Angular + Leaflet 实现房源数据可视化(附github源码)
- Tornado 框架
- Where is the kernel documentation?; Ubuntu 上如何安装 linux 内核文档;fedora 上如何安装linux内核文档?