一个多用户的问题???? Gy_Maxnumber 设为主键更新前改表名 :) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 光这一句怎么会重复?update Gy_Maxnumber set NowNumBer=NowNumBer+1 where BillCode=1209 --添加排它锁。update Gy_Maxnumber set NowNumBer=NowNumBer+1 where BillCode=1209 WITH (XLOCK) 为了模拟ORACLE 的sequence 方法,我写了一个存储过程,不知道是否适合你ALTER PROCEDURE [dbo].[genNextId] ( /*生成表主键*/ @v_tab_name nvarchar(50), /*[1]表名*/ @v_col_name nvarchar(50), /*[2]列名*/ @v_n_id bigint output /*[3]返回ID*/)AS --保证能够生成行锁 BEGIN TRANSACTION TRAN1 UPDATE code_id SET n_id = n_id + 1 WHERE c_tab_name = UPPER( @v_tab_name ) and c_col_name = UPPER( @v_col_name ) IF @@ROWCOUNT = 0 BEGIN --SELECT @v_n_id = MAX( @v_col_name ) FROM @v_tab_ INSERT INTO CODE_ID (C_TAB_NAME,C_COL_NAME,N_ID) VALUES (UPPER( @v_tab_name ), UPPER( @v_col_name ), '1' ) SET @v_n_id = 1 END ELSE BEGIN SELECT @v_n_id = n_id FROM code_id WHERE c_tab_name = UPPER( @v_tab_name ) and c_col_name = UPPER( @v_col_name ) END COMMIT TRANSACTION TRAN1 有时一天好几张!!!!!!update Gy_Maxnumber set NowNumBer=NowNumBer+1 where BillCode=1209在BillCode相同的情况下,有可能同时发生? update Gy_Maxnumber set NowNumBer=NowNumBer+1 where BillCode=1209更新自动加排它锁, 所以光这句产生不了重复的. SQL2008关于时间计算的问题 请教个查询语句 关于视图的问题! 数据库运行并不断变慢 请问一个访问量并发量很大的数据库架构问题 能不能用SQL语句一次性更新select出来的娄数据. 在客户机上不装SQL客户端就不能添加ODBC数据源吗? 在sql server中如何存储查询*.tif格式的文件 急啊,只有5天了,这个过程就苦了一天,还没有出来,在线等你们,急啊!!!!!!!!!! 谁知道如何用ADO完成分页查询?急急急急急!! 紧急求救,不小心删了数据!!! 如何用ms-sql的數據來更新mysql的數據
update Gy_Maxnumber set NowNumBer=NowNumBer+1 where BillCode=1209 WITH (XLOCK)
ALTER PROCEDURE [dbo].[genNextId]
(
/*生成表主键*/
@v_tab_name nvarchar(50), /*[1]表名*/
@v_col_name nvarchar(50), /*[2]列名*/
@v_n_id bigint output /*[3]返回ID*/
)
AS
--保证能够生成行锁
BEGIN TRANSACTION TRAN1
UPDATE code_id SET n_id = n_id + 1 WHERE c_tab_name = UPPER( @v_tab_name )
and c_col_name = UPPER( @v_col_name )
IF @@ROWCOUNT = 0
BEGIN
--SELECT @v_n_id = MAX( @v_col_name ) FROM @v_tab_
INSERT INTO CODE_ID (C_TAB_NAME,C_COL_NAME,N_ID) VALUES (UPPER( @v_tab_name ), UPPER( @v_col_name ), '1' )
SET @v_n_id = 1
END
ELSE
BEGIN
SELECT @v_n_id = n_id FROM code_id WHERE c_tab_name = UPPER( @v_tab_name )
and c_col_name = UPPER( @v_col_name )
END
COMMIT TRANSACTION TRAN1