zoukankan      html  css  js  c++  java
  • SQL2000中 Top后不能更变量的解决方法

    在SQL2000中,Select Top后是不能直接更变量的,例如:

    select top @i * from table


    解决方法有两种:
    第一种:

    declare @i int,@sql varchar(100)
    set @i = 100
    set @sql = 'select top ' + cast(@i as varchar+ ' * from table'
    exec(@sql)

    通常我们可以使用这种方法来操作,但有时却不行,比如循环读取记录时(以下这么写会出错)

        declare @i int,@sql varchar(100)
        
    set @i = 100
        
    set @sql = 'select top ' + cast(@i as varchar+ ' * from table'
        
    DECLARE rs CURSOR  LOCAL SCROLL FOR
        
    --设置数据源
        exec(@sql)  
        
    OPEN rs

    第二种:使用set rowcount = 100来实现

        set rowcount 100      --设置读取的条数
        DECLARE rs CURSOR  LOCAL SCROLL FOR
        
    --设置数据源
        select * from table
        
    OPEN rs

        
    set rowcount 0        --恢复读取的条数

  • 相关阅读:
    ptmalloc内存分配和回收详解(文字版)
    HITCTF2018
    缓冲区溢出保护机制——Windows
    缓冲区溢出保护机制——Linux
    TAMUCTF
    反汇编简介
    apkg命令
    ubuntu基本命令
    ubuntu命令~
    apt-get用法
  • 原文地址:https://www.cnblogs.com/yeagen/p/1397784.html
Copyright © 2011-2022 走看看