当前位置: 首页 > 面试题库 >

Sybase sp_who截断主机名

乜安志
2023-03-14
问题内容

我正在使用sybase服务器提供的Rapid SQL或isql连接到sql数据库。当我发出

sp_who username

命令,我应该获取已连接用户的列表。我可以,但是主机名列被截断,因此例如当主机地址为host0001时,它会被截断为host0,这是一个问题,因为有许多主机名以相同的前缀开头,例如host001,host002…。因此,我不知道哪些进程阻塞了我的数据库,我无法登录到计算机并杀死这些进程。我没有特权从数据库isql控制台中杀死它们。我必须登录计算机并在那里杀死进程(因为我有特权停止这些进程)。问题是为什么sp_who会截断此列以及如何阻止它。


问题答案:

sp_who从多个表中提取并合并信息以提供报告。它并非旨在产生可用于其他输入的输出。如果您需要来自sp_who的信息,最好对进行自己的查询sysprocesses。不幸的是,在这种情况下,执行自己的查询将无济于事,因为主机名不会被更改sp_who。在Sybase中,主机名是由正在连接的应用程序设置的,而不是由服务器设置的(请尝试select hostname from master..sysprocesses,您将看到)。

一种解决方案是从其他客户端在连接字符串中添加一个set clientnameset clienthostname命令。我相信可以通过ODBC来完成。否则,您可以使用该sysprocesses.ipaddr列来区分主机:

select fid, spid, status, suser_name(suid), clienthostname, ipaddr
from master..sysprocesses
where suid = suser_id('username')
order by ipaddr, spid


 类似资料:
  • 问题内容: 截断->这将重置整个表,是否可以通过截断来重置特定的记录/检查条件。 例如:我想重置所有数据并在表中保留过去30天。 谢谢。 问题答案: 不,是全部还是全部。您可以这样做,但这会失去的速度优势。

  • 命令用于截断表。 如果您截断表,表的所有行将永久删除。 语法: 示例: 我们有一个名为“”的表具有以下数据(创建表并插入数据): 现在,我们使用命令: 现在表已经被截断了,您可以使用SELECT命令验证它。 如下图所示 - 您可以看到表现在被截断。

  • 在MariaDB数据库中,语句用于从表中删除所有记录。它与没有子句的语句相同。 注意:如果使用表语句,该表将被永久删除,无法回滚。 语法 示例: 假设我们想要截断表,那么可以参考以下语句 - 上面查询成功执行。可以看到表的记录已被永久删除。下面来查询表中的数据,应该不会看到任何数据 - 注意 语句相当于,然后再,或者等效于,然后再设置自动增长值为:,也就是执行语句:

  • 主要内容:Oracle TRUNCATE TABLE语句简介,Oracle TRUNCATE TABLE示例在本教程中,您将学习如何使用Oracle 语句更快更有效地从表中删除所有数据(也叫截断表)。 Oracle TRUNCATE TABLE语句简介 如果要从表中删除所有数据,可以使用不带子句的语句,如下所示: 对于有少量行记录的表,语句做得很好。 但是,当拥有大量行记录的表时,使用语句删除所有数据效率并不高。 Oracle引入了语句,用于删除大表中的所有行。 以下说明了Oracle 语句的语

  • 截断类将删除定义为类的一部分的所有簇的记录。 在OrientDB中,每个类都有一个具有相同名称的关联群集。 如果还想从类层次结构中删除所有记录,则需要使用关键字。 以下语句是命令的基本语法。 以下是有关上述语法中选项的详细信息。 - 定义要截断的类。 - 定义命令是否也截断层次结构。 - 定义命令在顶点或边界类上强制截断。 示例 以下查询截断类。 如果上述查询成功执行,您将得到以下输出。

  • 从平均值0.5和标准差0.1的正态分布中得出伪随机数。 既然如此,下面的Matlab代码是否等价于从一个在0处截断的正态分布在1处进行采样?