可能是你的表锁了!--先把表中的数据导入一个临时表 select distinct * into #T from tab_name truncate table tab_name ( 或 drop table tab_name)insert into tab_name select * from #T (或 select * into tab_name from #T)drop table #TPS: 解锁: use master go create proc killspid (@dbname varchar(20)) as begin declare @sql nvarchar(500),@temp varchar(1000) declare @spid int set @sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')' exec (@sql) open getspid fetch next from getspid into @spid while @@fetch_status =0 begin set @temp='kill '+rtrim(@spid) exec(@temp) fetch next from getspid into @spid end close getspid deallocate getspid end --用法 use master exec killspid '数据库名'
我看到的情况,四个一模一样的记录,每个记录都只有一个有值,其他都是null。
就这四个删除不掉。提示好象是说,列信息不足或者错误什么的。(具体也记不清楚了)
可是既然不允许有null值,
为什么却允许它存在呀。
2:或者不用企业管理器删,用查询分析器中的delete语句来删即可。
试试用DELETE语句删除
select distinct * into #T from tab_name
truncate table tab_name ( 或 drop table tab_name)insert into tab_name select * from #T (或 select * into tab_name from #T)drop table #TPS:
解锁:
use master
go
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status =0
begin
set @temp='kill '+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end --用法
use master exec killspid '数据库名'
在企业管理器中删不了是因为你的记录是重复的。
企业管理器-->选中目标数据库,右键-->所有任务-->分离数据库-->可以看到一个使用本数
据库的连接的个数,点击清除,就可以了3.这下应该就可以删除了!