SET TRANSACTION ISOLATION LEVEL SERIALIZABLE用这个不灵啊
多线程调用些过程。。。@filename还是有重复的 咋回事呀。
CREATE PROCEDURE dbo.p_release
(
@title varchar(40),
@poster varchar(20),
@postdatetime datetime,
@replies int
)
AS
declare @s int,@posterid varchar,@filename varchar(100)
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
set @posterid=null
select @s=count(*) from post where datediff(day,@postdatetime,getdate())=0
set @filename='/post/'+yewuyuan.dbo.path(@s+1,4,convert(varchar(10),@postdatetime,120))
insert post (poster,posterid,title,filename,postdatetime,replies) values (@poster,@posterid,@title,@filename,@postdatetime,@replies)
If @@error > 0
ROLLBACK TRANSACTION
Else
COMMIT TRANSACTION
select @filename
GO