如何取得ROWCOUNT值

simonxt 2012-04-27 11:59:33
SET ROWCOUNT 100 -- 此处100这个具体数字是未知的
-------------------------------------------

select top 10 * from mytable
select @@ROWCOUNT -- 这个等于10,10不是我要的
declare @a int;
--- 这里我要取到第一行的100这个数怎么得到? 注:第一行100这个数字我不设置变量赋值,所以不要让我在第一行设置变量,最后再取这个变量值
set @a = ();
...全文
201 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
simonxt 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
没找到直接获取的方法,试试以下变通的方法能否满足要求

SQL code
SET ROWCOUNT 100

declare @a int;
select 1 col from sys.objects,sys.columns
set @a= @@rowcount
[/Quote]

我也想过类似的办法,只是我想应该有什么直接的办法取得吧。
孤独加百列 2012-04-27
  • 打赏
  • 举报
回复
那就不要top了啊,直接select * 就可以了,然后再SET @A = @@ROWCOUNT
百年树人 2012-04-27
  • 打赏
  • 举报
回复
没找到直接获取的方法,试试以下变通的方法能否满足要求
SET ROWCOUNT 100

declare @a int;
select 1 col from sys.objects,sys.columns
set @a= @@rowcount
叶子 2012-04-27
  • 打赏
  • 举报
回复
楼主的意思是想得到SET ROWCOUNT 后面的值,但是貌似不用变量的话是没有办法得到的。
Andy-W 2012-04-27
  • 打赏
  • 举报
回复
是否这样:

SQL Server 2008:
declare @top int=100;
Select Top(@top) * From mytable
simonxt 2012-04-27
  • 打赏
  • 举报
回复
SET ROWCOUNT 100 -- 设置后续执行的最大行数为100,写200的话就限制200
select * from mytable -- 因为上一句,这里最多只显示100行
select -- 我要在SET ROWCOUNT 100 之后,在这里取得第一句的100这个数值

-- 这样解释清楚了吗?
  • 打赏
  • 举报
回复
没明白你什么意思?第一行的100这个数字???
一个免费的表格控件,相当强大 reportX支持预览和打印、支持公式、支持表格模版、支持导出excel、支持单元格锁定及格式、支持图表和条码等,不支持数据源、单元格边框单独改色,至2.6版本时仍有些BUG如:OnCellChanging事件无效,只能用API getfocus()取当前输入框句柄然后取该控件的标题即是正在输入的内容。 发布只要regsvr32注册ReportX.ocx即可。 1、常用属性及方法: setcellvalue()置单元格文本、getcellvalue()取单元格文本、Explain...()计算刷新单元格公式、OpenReport()载入表格模版、ColcountRowcount属性设置或取得表格行列数、 GetSelectCell方法的参数应使用变量而不是变量以便该方法将选择范围返回给变量、TopRow属性为当前表格可见行首行号、Sortcol()对指定列进行排序、sortrow()对指定行排序、PageHeader...Text和PageFooter...Text属性设置页眉页脚其中@number表示当前面@Count表示总页数、 GetCellHAlignment取横向对齐方式GetCellVAlignment纵向SetCellHAlignment设置0左1中2右、ExplainCellExpression计算单元格公式(单元格公式不会自动计算,只能在程序中调用执行)、ExportExcel导出到excel。 2、BottomHeight和RightWidth设为0则reportX没有滚动条,PoleHeight和PoleWidth设为0则表格没有固定标题行列。 3、reportx单元格首列和首行号均为1 4、setpoletext()和getpoletext 参数一为标杆方向横向为0,纵向为1,参数二位置从1开始(即最左上角标杆格无法设置任何数据) 5、MergeCell()合并单元格必须用合并后的最前的行列进行读写,或用SplitCell拆分单元格。 6、VB对其setfocus()无效(易语言支持setfocus),可使用控件本身的SetSelectCell方法代替。 7、AppendRow和AppendCol方法增加指定的行数或列数,DeleteCol删除指定列数。 8、reportx.SetColWidth col, reportx.GetColBestWidth(col) + 9 '填充完数据后,用此语句设置最佳列宽。 9、copycell和paste方法可以复制,粘贴区域,包含格式(但不含分页符),可以粘贴到另一个Rpt对象中。 10、大量写表格数据时,设置InvalidatePaint()使表格刷新无效,写好数据后使用ValidatePaint()使报表刷新有效并刷新,这样可以加快写的速度。如果这样还是太慢或内存不足,则只能用分页分册的方式了。 速度上比VsFlex的还是要差很多,但支持图表,支持打印,支持套打模版等等,更主要的是免费,支持原作者!

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧