SQL2005 如何一次性删除数据库中的表?1.新建数据库CREATE DATABASE WORK2.假设应该数据库中有多个用户表现
SQL2005 如何一次性删除数据库中的表?
1.新建数据库
CREATE DATABASE WORK
2.假设应该数据库中有多个用户表
现在想一次性删除该数据库中所有用户表
考虑过语句
DELETE FROM WORK.dbo.sysobjects where xtype='U';
但SQL2005默认是不支持上述操作!
语句运行报错如下:
不允许对系统目录进行即席更新。
GOOGLE后的
SQL 2005中有一个“允许对系统目录直接进行修改”的选项
请教大师们,如何设置呢?
也试过
sp_configure 'allow updates', 1;
RECONFIGURE WITH OVERRIDE;
但错误依旧
[解决办法]
- SQL code
CREATE PROCEDURE sp_drop_all_fk as declare @sql varchar(255) declare dropsql_cursor cursor for select 'alter table '+object_name(fkeyid)+' drop constraint '+object_name(constid)+char(10) from sysreferences open dropsql_cursor fetch dropsql_cursor into @sql begin tran while @@fetch_status=0 begin execute(@sql) if @@error <> 0 begin rollback return end fetch dropsql_cursor into @sql end deallocate dropsql_cursor commit GO exec sp_drop_all_fk -- 执行存储过程2、删除表declare @table varchar(400)while (select count(*) from sysobjects where type='u')>=1 begin set @table=(select top 1 name from sysobjects where type='u') set @table='drop table '+@table exec(@table) endselect name,type from sysobjects where type='u'本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/js_szy/archive/2009/08/29/4496010.aspx
[解决办法]
- SQL code
sp_MSforeachtable @command1 = "TRUNCATE TABLE ?"
