哪位帅哥能把我这句语句改写成一个存储过程啊?string rep="select  top " + spa;
       rep+=" *    FROM repInfo where id not in (select  top "+  filter;
       rep+=" id from repInfo where  文章id="+spt1+" ORDER BY ID) AND 文章id= "+spt1+" order by id";下面是我自己写的一个存储过程,在SQL里检查语法没有错误,但是在VS中执行却报错!
CREATE  PROCEDURE   Rep
(
     @TopID int,
     @Tem     int,
     @Yeshu       int
)AS
BEGIN
Declare  @sql  varchar(8000)
SET @sql= 'select  top ' + @Tem +'   *    FROM repInfo where id not in (select  top '+  filter+' id from repInfo where  文章id='+spt1+' ORDER BY ID) AND 文章id=' +spt1+' order by id '
EXEC (@sql)
END
GO请各位大侠帮帮我吧!

解决方案 »

  1.   

    CREATE  PROCEDURE   Rep
    (
         @TopID int,
         @Tem     int,
         @Yeshu       int
    )AS
    BEGIN
    Declare  @sql  varchar(8000)
    SET @sql= 'select  top ' + Convert(varchar,@TopID)+'   *    FROM repInfo where id not in (select  top '+ convert(varchar,@tem)+' id from repInfo where  文章id='+Convert(varchar,@yeshu)+' ORDER BY ID) AND 文章id=' +Convert(varchar,@yeshu)+' order by id '
    EXEC (@sql)
    END
    GO
    试一下
    可能还有点问题
      

  2.   

    -------------------------------
    下面是我自己写的一个存储过程,在SQL里检查语法没有错误,但是在VS中执行却报错!
    -------------------------------
    我刚才把你写的拷贝到查询分析器里,分析是没有出问题,运行就出问题了。当然了,
    我也不知道是什么问题,呵呵。
    ---------- 如下提示 -------------
    サーバー : メッセージ 207、レベル 16、状態 3、プロシージャ Rep、行 11
    列名 'filter' は無効です。
    サーバー : メッセージ 207、レベル 16、状態 1、プロシージャ Rep、行 11
    列名 'spt1' は無効です。
    サーバー : メッセージ 207、レベル 16、状態 1、プロシージャ Rep、行 11
    列名 'spt1' は無効です。
      

  3.   

    not in ('select ... ...')
      

  4.   

    not in (' + select ... ... + ')
      

  5.   

    根据了解 chenzhifeng(这一刻才发觉是自己失去了-_-#)  帅哥的方法,搞定了这个问题,感谢各位朋友的帮助!!!
    下面给出能够正确运行的存储过程也给各位不太熟悉存储过程的朋友一个参考!CREATE  PROCEDURE   Repp
    (
         @TopID int,
         @Tem     int,
         @Yeshu       int
    )AS
    BEGIN
    Declare  @sql  varchar(8000)
    SET @sql= 'select  top ' + convert(varchar,@Tem)+'   *    FROM repInfo where id not in (select  top '+ convert(varchar, @Yeshu)+'  id from repInfo where  文章id='+Convert(varchar,@TopID)+' ORDER BY ID ) AND 文章id=' +Convert(varchar,@TopID)+' order by id '
    EXEC (@sql)
    END
    GO