我想在服务器中自己数据库中所有用户表上的约束都删掉。
我用delete from sysobjects where xtype<>'s '来实现,但是这种方法并没有删除掉建primary key系统产生的索引,
我select * from sysindexes发现这里面有好多主键的索引,我想把这里面的用户表的索引删掉,但是找不到用来区分系统表
和用户表的字段,请问我要怎么做,才可以做到在数据库中将所有的用户表相关的信息清除干净呢?

解决方案 »

  1.   

    找到sysindexes中user创建的系统对象的信息。select * from sysindexes
    join (select name, id from sysobjects where xtype = 'U') t
    on t.id = sysindexes.id
      

  2.   

    谢谢大家的回答,可能是我没有说清楚,我的意思是,我上传过数据,但是现在我想把服务器上的数据库里面所有的用户建的数据清空,相当于恢复到刚建的数据库那样。
    我不知道大家是怎么向服务器上传数据的,我以前也都是用ACCESS的,现在做了一个门户网站,它的数据据是SQL的,我上传的方法是:先用查询分析器连上服务器,然后把我的SQL语句放在服务器上执行。再用企业管理器导出数据到服务器上。我delete from sysobjects where xtype<>'s '之后,运行我的SQL语句是一点都不报错。但是我从本地导出数据到服务器上时就会报错,说是什么键跟什么键冲突。我就是不想它报错。
      

  3.   

    sp_MSforeachtable @command1 = "TRUNCATE TABLE ?" 
      

  4.   

    我已经找到解决的办法了。
    delete from sysobjects where xtype<>'s '
    delete from sysindexes where name not like '%sys%'
    delete from sysindexes where name like 'FK_%'
    delete from sysindexes where name like '_WA%'
    然后从本地数据库用数据库间复制的方法,覆盖服务器上的数据库就可以了。
    感谢各位的回复,散分。