select * from sp_who的解决方案

 更新时间:2009年04月15日 22:25:54   作者:  
sql server中提供很多有用的系统存储过程,但是我们都知道,存储过程的结果集是不能用select来过滤的,也就是说select * from sp_who where [dbname] = 'xxx';这样的语句是执行不过。下面介绍两种方法来解决这个问题
方法一:使用临时表。
首先创建一个与sp_who相同字段的临时,然后用insert into 方法赋值,这样就可以select这个临时表了。具体代码如下:
create table #TempTable(spid int,ecid int,status varchar(32),loginname varchar(32),hostname varchar(32),blk int,dbname varchar(32),cmd varchar(32),request_id int);
insert into #TempTable
exec sp_who;
select * from #TempTable where [dbname] = 'master';
drop table #TempTable
方法二:使用OPENROWSET
代码如下:
select * from openrowset('SQLOLEDB','servername';'userName';'password','sp_who') where [dbname] = 'master';
执行上面这个语句,如果提示:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息。
说明你没有配置 'Ad Hoc Distributed Queries' ,按如下方法配置
启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
然后就可以运行上面的代码了。
使用完成后,如果想关闭Ad Hoc Distributed Queries,执行如下代码:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

相关文章

  • 使用 SQL 语句实现一个年会抽奖程序的代码

    使用 SQL 语句实现一个年会抽奖程序的代码

    这篇文章主要介绍了使用 SQL 语句实现一个年会抽奖程序,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • sql编程工具Sql Prompt下载及安装破解图文教程

    sql编程工具Sql Prompt下载及安装破解图文教程

    SQL Prompt是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码易读性--这在开发者使用的是不大熟悉的脚本时尤其有用
    2014-08-08
  • Spark SQL数据加载和保存实例讲解

    Spark SQL数据加载和保存实例讲解

    这篇文章主要以实例讲解的方式为大家详细介绍了Spark SQL数据加载和保存的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • SQLServer触发器创建、删除、修改、查看示例代码

    SQLServer触发器创建、删除、修改、查看示例代码

    触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束。
    2010-06-06
  • sql动态行转列的两种方法

    sql动态行转列的两种方法

    sql动态行转列的两种方法,需要的朋友可以参考一下
    2013-04-04
  • sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器)

    sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器)

    mssql在使用多库查询的时候会用到链接服务器,以下为链接服务器的添加方法,添加完了即可实现任意改服务器的多库查询了
    2011-08-08
  • SQL Server快速彻底卸载实例方法分享

    SQL Server快速彻底卸载实例方法分享

    最近在安装了SQL Server后,当由于某些原因我们需要卸载它时,我们应该怎么操作呢?这篇文章主要给大家介绍了关于SQL Server快速彻底卸载的相关资料,需要的朋友可以参考下
    2023-10-10
  • sql语句中union的用法与踩坑记录

    sql语句中union的用法与踩坑记录

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集,下面这篇文章主要给大家介绍了关于sql语句中union用法与踩坑的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • sqlserver合并DataTable并排除重复数据的通用方法分享

    sqlserver合并DataTable并排除重复数据的通用方法分享

    网上合并DataTable通用方法的文章很多,结合项目开发中的常用需求,并借鉴网上的做法,写了一个合并DataTable的通用方法,主要功能是合并两个DataTable(结构可以不同,如字段不完全一致),并可以根据某一列值进行排重处理
    2011-12-12
  • sql字符串函数大全和使用方法示例

    sql字符串函数大全和使用方法示例

    本文主要讲解SQL SERVER的字符串函数使用方法,包括LEN、LOWER、UPPER (string)、LTRIM、RTRIM等函数
    2014-01-01

最新评论