求学:下面这段语句,直接在SQL Server 中可执行成功,但在VFP中运行失败,总是存在数据库正在使用中无法删除的有关问题
求学:下面这段语句,直接在SQL Server 中可执行成功,但在VFP中运行失败,总是存在数据库正在使用中无法删除的问题
use master
go
declare @dbname sysname
set @dbname='HHJXCJ_ZHGLXT'
declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses
where dbid=db_id(@dbname)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
EXEC('drop database ['+@dbname+']')
------解决方案--------------------
应该是 VFP 连接着被删除的数据库,也就是说此时数据库被占用着,所以无法删除。
应该在
nRetval=sqlexec(nHandle,"DROP DATABASE HHJXCJ_ZHGLXT")
之前以下语句
if sqlexec(nHandle,"USE MASTER")<0
return
endif
use master
go
declare @dbname sysname
set @dbname='HHJXCJ_ZHGLXT'
declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses
where dbid=db_id(@dbname)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
EXEC('drop database ['+@dbname+']')
------解决方案--------------------
应该是 VFP 连接着被删除的数据库,也就是说此时数据库被占用着,所以无法删除。
应该在
nRetval=sqlexec(nHandle,"DROP DATABASE HHJXCJ_ZHGLXT")
之前以下语句
if sqlexec(nHandle,"USE MASTER")<0
return
endif