首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

有关一个存储过程的有关问题

2012-03-09 
有关一个存储过程的问题SQL code--些存储过程是通过传入的表名,字段,关键字,查询条件,排序字段来进行查询,

有关一个存储过程的问题

SQL code
--些存储过程是通过传入的表名,字段,关键字,查询条件,排序字段来进行查询,返回记录记录总数drop procedure mytestproceduergocreate PROCEDURE mytestproceduer @serchclumname char(8000),--查询的字段列表 @serchwords char(10),--查询的关键字 @serchtable char(20),--查询的表名 @topnumber int=0,--查询顶部的记录条数 @outputnumber int=10 output--返回的记录总数ASdeclare @serchtablename char(8000);declare @selectcount3 char(8000);BEGINselect @serchtablename='select top 1 ' + @serchclumname +' from '+ Rtrim(@serchtable) +' where [C_name]='''+rtrim(@serchwords)+'''' +' order BY C_id';exec (@serchtablename);print @serchtablename;select @selectcount3='select ' + @serchclumname + ' from '+ Rtrim(@serchtable) +' where [C_name]='''+rtrim(@serchwords)+'''' +' order BY C_id';exec (@selectcount3);select @outputnumber=@@ROWCOUNT;ENDreturn @outputnumber;exec mytestproceduer @serchclumname='C_id', @serchwords='wen',@serchtable='T_mytest',@topnumber=1


为什么下面这句会不行
select @serchtablename='select top 1 ' + @serchclumname +' from '+ Rtrim(@serchtable) +' where [C_name]='''+rtrim(@serchwords)+'''' +' order BY C_id';


如下直接写是正常的
select @serchtablename='select top 1 C_id from '+ Rtrim(@serchtable) +' where [C_name]='''+rtrim(@serchwords)+'''' +' order BY C_id';
这是为什么?

还有,如果我想返回记录的总数,有没有更好的方式?


[解决办法]
http://blog.csdn.net/xuexiaodong2009/article/details/6336638
SQL2005分页查询
[解决办法]
定义一个@rowcount,每执行一句sql就把@@rowcount加上
[解决办法]
print出来就可以看见错误了

热点排行