多表插入问题,如何同时生成两个客户号(同一client表流水号)

@信心 2011-10-24 02:24:01
多表插入问题,如何同时生成两个客户号(同一client表流水号)

//生成客户id
//函数是通过select max(clientid) +1 from client 实现的
// select max(clientid) +2 from client 实现的
//问题是同时获取两个客户号同重复,不知道有什么好的办法解决?


相关的代码如下 :
string x= clientid();
strign y =clientid();
try
{
con.BeginTransaction();
///投保客户
com.CommandText = "insert into gy_client(clientid)values(x)...."
com.ExecuteNonQuery();
///被保客户
com.CommandText = "insert into gy_client(clientid)values(y)...."
com.ExecuteNonQuery();

st.Commit();
}
cacthc{ .... }
...全文
127 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
@信心 2011-10-25
  • 打赏
  • 举报
回复
还是有问题。clientid经常要用到 查询相关信息,利用newid()生成的东东,太长了,又没有规则,使用太不方便了吧!
@信心 2011-10-25
  • 打赏
  • 举报
回复

不好意思!,ms sql2000确实有! 请给段具体用法的代码呗!
-晴天 2011-10-24
  • 打赏
  • 举报
回复
2000 中有 newid()的.
@信心 2011-10-24
  • 打赏
  • 举报
回复
8-9楼朋友的意见不错!遗憾的我的数据库是ms sql 2k!
nvhaixx 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 roy_88 的回复:]
用一個表記錄最大單號,每次取完更新這條記錄,這是最有效的
記得取號時加事務
[/Quote]
同意,这样不会出现重复单号。
oO寒枫Oo 2011-10-24
  • 打赏
  • 举报
回复
和 oracle 里面的sys_guid() 类似
oO寒枫Oo 2011-10-24
  • 打赏
  • 举报
回复
是newid() char(32) 位的
这样可以避免产生重复的id
@信心 2011-10-24
  • 打赏
  • 举报
回复
没明白楼上的意思。newd()
select max(clientid)+1 from gy_client
select max(clientid)+2 from gy_client
是这样吗?
oO寒枫Oo 2011-10-24
  • 打赏
  • 举报
回复
用 new_id() 好控制一些
@信心 2011-10-24
  • 打赏
  • 举报
回复
还有另外的一个方法:按当前系统时间生成客户号 datetim.now.(yyyyMMddHHmmSSfff)同时生成两个不重复的客户号.因为多用户同时操作不知道可行吗??请大家给点意见!
中国风 2011-10-24
  • 打赏
  • 举报
回复
這里舉個例子

CREATE TABLE T(ID INT IDENTITY,NAME NVARCHAR(50))

GO
CREATE PROCEDURE cT(
@Name NVARCHAR(50),
@ID INT OUTPUT
)
SET XACT_ABORT ON;
BEGIN TRAN
DECLARE @ID int
INSERT T SELECT @Name
SET @ID=SCOPE_IDENTITY()
COMMIT TRAN
go

DECLARE @ID INT
SET cT @Name='X',@ID=@ID output
--小F-- 2011-10-24
  • 打赏
  • 举报
回复
insert into gy_client(clientid) select * from max(clientid) +1 from client 

insert into gy_client(clientid) select * from max(clientid) +2 from client
中国风 2011-10-24
  • 打赏
  • 举报
回复
通常單機可用Identity標識列,其它用GUID為主健
中国风 2011-10-24
  • 打赏
  • 举报
回复
用一個表記錄最大單號,每次取完更新這條記錄,這是最有效的
記得取號時加事務

22,206

社区成员

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

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