举个例子,比如我想获得某张表的所有主键,可以调用exec sp_pkeys + 表名 来获得结果集,但是我在sql server的分析器中,想获得其结果集中的某一行的纪录,要怎么办?是不是需要定义临时表才能达到这个效果?还是可以定义一个结构使用类似 select top1 @Recorder = exec sp_pkeys + 表名这样的方法来实现。

解决方案 »

  1.   

    不论结果集是哪儿来的,定位记录行都得用游标、或select 唯一键值
      

  2.   

    CREATE TABLE #(q VARCHAR(100),o VARCHAR(100),n VARCHAR(100),cn VARCHAR(100),k VARCHAR(100),pk VARCHAR(100))
    INSERT # EXEC  sp_pkeys tb
    DECLARE @s VARCHAR(100)
    SELECT TOP 3 @s=pk FROM #  /*如果行数>=3,则取得第三行记录的pk对象名. 若行数<3,那么取的是最后一行的*/
    SELECT @s
    DROP TABLE #