zoukankan      html  css  js  c++  java
  • TSQL语句实现清空数据库数据的代码,保留原有表形式和各种约束

     1)禁用本库中所有表的外键约束

    DECLARE Employee_Cursor CURSOR FOR
    select name from sysobjects where xtype='u' and (not name LIKE '数据库名') order by [name] asc;
    declare @tablename varchar(300);
    declare @str varchar(1000);
    declare @rst int;
    --SET @MyVariable = MyCursor
    OPEN Employee_Cursor;
    FETCH NEXT FROM Employee_Cursor into @tablename;
    WHILE @@FETCH_STATUS = 0
       BEGIN
       select @str = 'ALTER TABLE '+ @tablename + ' NOCHECK CONSTRAINT ALL';
       EXECUTE(@str);
          FETCH NEXT FROM Employee_Cursor into @tablename;
       END
    CLOSE Employee_Cursor;
    DEALLOCATE Employee_Cursor;

    2)恢复本库中所有表的外键约束


    DECLARE Employee_Cursor CURSOR FOR
    select name from sysobjects where xtype='u' and (not name LIKE '数据库名') order by [name] asc;
    declare @tablename varchar(300);
    declare @str varchar(1000);
    declare @rst int;
    --SET @MyVariable = MyCursor
    OPEN Employee_Cursor;
    FETCH NEXT FROM Employee_Cursor into @tablename;
    WHILE @@FETCH_STATUS = 0
       BEGIN
       select @str = 'ALTER TABLE '+ @tablename + ' CHECK CONSTRAINT ALL';
       EXECUTE(@str);
          FETCH NEXT FROM Employee_Cursor into @tablename;
       END
    CLOSE Employee_Cursor;
    DEALLOCATE Employee_Cursor;

        3) 删除本库中所有表数据

            DECLARE Employee_Cursor CURSOR FOR
    select name from sysobjects where xtype='u' and (not name LIKE 'dtproperties') 
    -------------------------------------------------------------------------------------------
    --如果你想清空库中所有表的话,就不需要下段这部分代码
    -------------------------------------------------------------------------------------------
    and (name not in ('PageRights','ModuleInfo','RoleModuleRight','RoleInfo','UserInfo',
    'PersonnelInfo','SystemDirectory','MarriageState','TechnicalPostInfo','EducationInfo',
    'PlaceInfo ','DepartmentInfo ','FoodStandard','FieldsValue','PublicResShare','StyleInfo',
    'DocumentTypeInfo','AddressKindInfo','PayTypeInfo','FoodStandard','CityInfo','HotelType',
    'FootQuomodoInfo','HotelGradeInfo','PlaceArea','TravelAgencySortInfo','BusTypeInfo'))
    --------------------------------------------------------------------------------------------
    --如果你想保留某些表数据的话,可以加上下面这段代码,当然表名根据自己的情况写
    --------------------------------------------------------------------------------------------
    order by [name] asc;
    declare @tablename varchar(300);
    declare @str varchar(1000);
    declare @rst int;
    --SET @MyVariable = MyCursor
    OPEN Employee_Cursor;
    FETCH NEXT FROM Employee_Cursor into @tablename;
    WHILE @@FETCH_STATUS = 0
       BEGIN
       select @str = 'Delete '+ @tablename ;
       EXECUTE(@str);
          FETCH NEXT FROM Employee_Cursor into @tablename;
       END
    CLOSE Employee_Cursor;
    DEALLOCATE Employee_Cursor;

  • 相关阅读:
    系统的讲解
    后端架构师技术图谱
    设计模式简介(45种)
    浅入浅出 Go 语言接口的原理
    我所认为的RESTful API最佳实践
    Mysql 索引精讲
    客户端与服务端的三次握手与四次挥手
    线程的安全和可重入(待续)
    进程和线程(待续)
    设计模式(3)--观察者模式(待续)
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/1832885.html
Copyright © 2011-2022 走看看