--删除数据库表数据  慎用
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

MSSQL 删除数据库表数据的更多相关文章

  1. mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享

    摘要: 下文讲述清空数据库中所有表信息的方法分享,如下所示: 实验环境:sql server 2008 实现思路: 1.禁用所有约束,外键 2.禁用所有触发器 3.删除表数据 4.开启触发器 5.开启 ...

  2. jmeter 获取数据库表数据作为参数

    jmeter - 获取数据库表数据作为参数 在jmeter中使用数据库表数据首先需要设置数据库连接,然后在创建JDBC取样器 1.创建配置元件 JDBC Connection Configuratio ...

  3. Django学习路5_更新和删除数据库表中元素

    查找所有的元素 Student.objects.all() 查找单个元素 Student.objects.get(主键=值) 主键 pk = xxx 更新数据库数据后进行保存 stu.save() 删 ...

  4. 工作随笔——mysql子查询删除原表数据

    最近在开发的时候遇到一个mysql的子查询删除原表数据的问题.在网上也看了很多方法,基本也是然并卵(不是写的太乱就是效率太慢). 公司DBA给了一个很好的解决方案,让人耳目一新. DELETE fb. ...

  5. MYSQL中delete删除多表数据

    MYSQL中delete删除多表数据 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 ...

  6. --oracle删除数据库表(无主键)中重复的记录

    --oracle删除数据库表(无主键)中重复的记录 1,  CREATE TABLE newtable as SELECT distinct * FROM T_SYSTEM_MENU_PRIV; 2, ...

  7. sqlserver快速删除整个表数据

    --删除整个表数据 SET STATISTICS TIME ON; DECLARE @Timer DATETIME = GETDATE(); TRUNCATE TABLE LOG_DEBUG_ERRO ...

  8. Python--增量循环删除MySQL表数据

    需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中“指定时期前“的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQ ...

  9. 【shell】定时删除DB2表数据

    使用db2的时候,有时候需要对表数据进行删除,防止数据太多,造成数据库空间满了 以下是一个定时删除表tmp,tm1中id为1的数据的脚本 #!/bin/sh ##------------------- ...

随机推荐

  1. IoT缺德相关

    https://github.com/nebgnahz/awesome-iot-hacks <揭秘家用路由器0day漏洞挖掘技术> Embedded Device Security: Pw ...

  2. 【解决】[Firmware Bug]: TSC_DEADLINE disabled due to Errata......starting timeout scripts

    问题一.[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x52 (o ...

  3. Pull Request 工作流——更高效的管理代码

    目录 Pull Request 工作流--更高效的管理代码 1.问题 2.解决方案 3.Git分支流管理代码具体实施 3.1本地分支操作管理 3.1.1查看分支 3.1.2创建分支 3.1.3切换分支 ...

  4. JS查找某个字符在字符串中出现的位置及次数

    var str = 'fdhfgcsaedvcfhgfh'; var index = str.indexOf('f'); // 字符出现的位置 var num = 0; // 这个字符出现的次数 wh ...

  5. vue--CRUD

    1. Create this.$http.post("http://localhost:3000/users",newCustomer).then(function (respon ...

  6. 速查 objc中可变集合和不可变集合的遍历性能

    次数 : 5,000,000 NSMutableArray //0.131999/0.116085/0.112128 NSArray //0.116842/0.111675/0.108623 NSMu ...

  7. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'type' for exchange 'me

    在启动RabbitMQ消费端的时候报错:Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol ...

  8. 并发编程~~~多线程~~~线程queue, 事件event,

    一 线程queue 多线程抢占资源,只能让其串行. 互斥锁 队列 import queue q = queue.Queue() # 先进先出 q = queue.LifoQueue() # 先进后出 ...

  9. go 语言学习图解

  10. Educational Codeforces Round 77 (Rated for Div. 2)

    A: 尽可能平均然后剩下的平摊 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int ...