|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
mysqld进程在一个写入当中被杀死;计算机的意外关闭(例如,如果计算机掉电);一个硬件错误。server|函数|原创
--分列地位的sqlserver函数-------------
SETQUOTED_IDENTIFIERON
GO
SETANSI_NULLSON
GO
createprocedureup_get_sort
@ls_ovarchar(10)
as
declare@ll_sortint,
@ldc_valuedec(9,2),
@ls_idvarchar(16),
@ll_sameint,
@ls_sqlvarchar(200)
Begin
---排位盘算-------
-----------------------
---有这么一个划定规矩数值不异的排名不异,
---并且占据地位比方第1名分数不异有3人,那末第2名就从4名入手下手------
--======================---------------
--入手下手之前要把关头字和数值保留到exam_use_sort内外
set@ll_sort=1
iflower(@ls_o)=descorlower(@ls_o)=d
begin--降序
set@ls_sql=SELECTid,use_valueFROMexam_use_sortorderbyisnull(use_value,0)desc
end
else
begin--升序
set@ls_sql=SELECTid,use_valueFROMexam_use_sortorderbyisnull(use_value,0)
end
exec(declarecurcursorfor+@ls_sql)
OPENcur;
fetchnextfromcurinto@ls_id,@ldc_value;
WHILE@@FETCH_STATUS=0
BEGIN
updateexam_use_sortsetuse_sort=@ll_sortwhere
use_value=@ldc_value;
--有几条不异的
select@ll_same=isnull(count(*),0)fromexam_use_sort
whereuse_value=@ldc_value;
set@ll_sort=@ll_sort+@ll_same
fetchnextfromcurinto@ls_id,@ldc_value;
END
CLOSEcur;
DEALLOCATEcur;
End
GO
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO
-------函数用到得表------------------
CREATETABLE[exam_use_sort](
[id][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[use_value][decimal](18,2)NULL,
[use_sort][int]NULL
)ON[PRIMARY]
GO
为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。 |
|