多表插入问题,如何同时生成两个客户号(同一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{ .... }
//函数是通过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{ .... }
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
goDECLARE @ID INT
SET cT @Name='X',@ID=@ID output
select max(clientid)+1 from gy_client
select max(clientid)+2 from gy_client
是这样吗?
这样可以避免产生重复的id
不好意思!,ms sql2000确实有! 请给段具体用法的代码呗!