日期:2014-05-19  浏览次数:20415 次

新年的第一个问题,大家给个面子啊!
哪位帅哥能把我这句语句改写成一个存储过程啊?

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

请各位大侠帮帮我吧!

------解决方案--------------------
消灭0回复
------解决方案--------------------
不会~~帮顶-_-
------解决方案--------------------
新年的第一个回贴,给点面子.给点分.
------解决方案--------------------
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
试一下
可能还有点问题

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