SQL Server事件探测

xfx625 2003-10-16 09:45:47
我现在需要获取在数据库服务器接受到连接命令时,在具体的连接数据库前,截取需要连接的数据库,不知道怎么做?
...全文
59 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdhdy 2003-10-16
  • 打赏
  • 举报
回复
我上边那个方法不行!
sdhdy 2003-10-16
  • 打赏
  • 举报
回复
你在程序里写登陆数据库连接字符串的时候,不是要填写服务器名称和数据库名称吗?那里面不能控制吗?
sdhdy 2003-10-16
  • 打赏
  • 举报
回复
用这个,不过那要等数据库连上之后,才能杀掉进程
use master
go
create proc killspid (@dbname varchar(200))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
declare @spid int
declare getspid cursor for
select spid from sysprocesses where dbid<>db_id(@dbname)
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 'ztpub'
xfx625 2003-10-16
  • 打赏
  • 举报
回复
是这样的,比如我有个数据库名叫“ztpub”,我希望能够通过SQL Server的编码将登陆该数据库前的信息拦截成功,比如如果连接的不是“ztpub”,而是“aaa”这个库,那我就会记录相应的信息,并且不给他连接!但是我希望这个能够在SQL Server中处理!
sdhdy 2003-10-16
  • 打赏
  • 举报
回复
跟踪属性-》筛选选项页-》DATABASENAME 同于填上你要的数据库名,就可以了。
lxj2002499 2003-10-16
  • 打赏
  • 举报
回复
能把要求讲的详细一点,没明白你的具体的要求。
xfx625 2003-10-16
  • 打赏
  • 举报
回复
不是“连上”,是将数据库“挂上”。然后再连。
sdhdy 2003-10-16
  • 打赏
  • 举报
回复
楼主,你还没连到数据库,如何通过一个存储过程将该数据库连上?
你最好在程序里进行判断。
xfx625 2003-10-16
  • 打赏
  • 举报
回复
谢谢:sdhdy(大江东去...)

我的本意是先将数据库分离开来,如果检测到需要连接某个具体的数据库,再通过一个存储过程将该数据库“挂”上!呵呵,上面没有描述清楚!
xfx625 2003-10-16
  • 打赏
  • 举报
回复
谢谢:sdhdy(大江东去...)

我的本意是先将数据库分离开来,如果检测到需要连接某个具体的数据库,再通过一个存储过程将该数据库连上!呵呵,上面没有描述清楚!

22,208

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧