我用sql 2000 server做服务器,数据库中有很多的表,存储过程、触发器,我想做一个初始化的过程,不知道如何将所有表都清空。

解决方案 »

  1.   

    如何写代码呀,或是sql语句?
    我的很多表都有触发器,如何停止所有的触发器呀?
      

  2.   

    楼上的兄弟说的我也知道,取出所有表名,然后删除就可以了,不过我的表中挂了delete触发器(有好几个),不可以这样做。
      

  3.   

    将所有表清空:
    procedure TForm1.FormCreate(Sender: TObject);
    var
      s:Tstrings;
      i:integer;
    begin
      s:=Tstringlist.Create;
      try
            database1.GetTableNames(s,false);
            for i:=0 to (s.Count-1) do
            begin
                    Table1.TableName:=s[i];
                    Table1.EmptyTable;
            end;
      finally
            s.Free;
      end;
    end;
      

  4.   

    if Application.MessageBox('确定要删除数据吗?不可恢复!!!','严重警告',MB_YESNO + MB_ICONWARNING) = idyes then
        begin
          with ADOQuery_Csh do
          begin
            Close;
            SQL.Clear;
            SQL.Add('delete * from diary');
            try
              ExecSQL;
            except
              ShowMessage('数据库正在被使用,初始化失败,请重新操作');
              Abort;
            end;
          end;
          ShowMessage('数据初始化成功');
      

  5.   

    在数据库里做一个存储过程,其中是一系列的truncate table 命令就行了,用清除所有记录的办法,标识列是没办法复位的。
      

  6.   

    將創建數據庫所有對象生成sql,刪除數據庫,重新創建數據庫,創建所有對象
      

  7.   

    取出表名,然后用truncate table 命令即可。