到中华英才网应聘的问题

liweijun598 2003-10-10 03:13:06
到了中华英才网。。
1、100万条数据,怎样分页
2、在SQL使用事务,会有什么危险
...全文
83 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gmlxf 2003-10-11
  • 打赏
  • 举报
回复
学习。
playyuer 2003-10-11
  • 打赏
  • 举报
回复
ACID
playyuer 2003-10-11
  • 打赏
  • 举报
回复
1.补充:
必须要有行标识列:
建议自动号!
不建议使用 recordset 的客户端分页功能(pagesize,pages)!

2.分解成小事务!
Devlopered 2003-10-11
  • 打赏
  • 举报
回复
up
伍子V5 2003-10-10
  • 打赏
  • 举报
回复
1.
/*
用存储过程实现的分页程序
*/
CREATE procedure Department_pagination
@SelectStr nvarchar(1000),
@ColumnStr nvarchar (1000),
@OrderStr nvarchar (1000),
@CurrentPage int,
@PageCount int
as
declare @TimeName nvarchar(25)
declare @TableStr nvarchar(1000)

select @TimeName = convert(nvarchar(23), getdate(), 121)
set @TimeName = REPLACE(@TimeName, '.', '')
set @TimeName = REPLACE(@TimeName, ':', '')
set @TimeName = REPLACE(@TimeName, '-', '')
set @TimeName = REPLACE(@TimeName, ' ', '')

select @TableStr='create table ##Tab' + @TimeName + '(wb int identity,'
exec(@TableStr+@ColumnStr+')')
exec('insert into ##Tab' + @TimeName + ' ' + @SelectStr + ' order by ' + @OrderStr)
exec('select * from ##Tab' + @TimeName + ' where wb between ((' + @CurrentPage + '-1)*' + @PageCount + '+1) and ' + @CurrentPage + '*' + @PageCount + ' order by wb')
exec('drop table ##Tab' + @TimeName)
GO



参数1:select语句。2:字段列表。3:排序字段。4:当前页。5每页数目


2.事务应尽可能的短,较长的事务增加了用户不能访问锁定数据的可能性
pengdali 2003-10-10
  • 打赏
  • 举报
回复
1、

CREATE PROCEDURE GetProductsPaged
@lastProductID int,
@pageSize int
AS
SET ROWCOUNT @pageSize
SELECT *
FROM Products
WHERE [standard search criteria]
AND ProductID > @lastProductID
ORDER BY [Criteria that leaves ProductID monotonically increasing]
GO

2、死琐

22,294

社区成员

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

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