有个问题,关于如何保证唯一索引的问题 取最大id号时,对表进行lock。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用IDENTITY(1,1) 字段在设计表中,int 型 ,标识 先 是,标识种子 1 ,标识增量 1 这样,数据库会自动加在记录增加时 新记录 此字段会自动加1 ,就象 MS ACCESS 中的那样 ,这样你无需编程就可以完成了。但此字段不能被编辑。 写个存储过程来获取最大编号,通过数据库自己维护锁来保证唯一CREATE PROCEDURE sys_get_maxvalue(@comp_id common_id, /*公司编号*/ @bill_id common_id, /*单据别代码*/ @id_rtn common_id output /*返回新的单据编号*/)ASset nocount onbegindeclare @bill_sym_id common_idselect @max_value = max_value from sys_bill_maxvalue where comp_id = @comp_id and bill_id = @bill_id update sys_bill_maxvalue set max_value = max_value + 1where comp_id = @comp_id and bill_id = @bill_idendGO CREATE PROCEDURE sys_get_maxvalue(@comp_id common_id, /*公司编号*/ @bill_id common_id, /*单据别代码*/ @max_value common_id output /*返回新的单据编号*/)ASset nocount onbeginselect @max_value = max_value from sys_bill_maxvalue where comp_id = @comp_id and bill_id = @bill_id update sys_bill_maxvalue set max_value = max_value + 1where comp_id = @comp_id and bill_id = @bill_idend sql 2000分组查询!!! SQL查询数据生成XML文件 求一条SQL语句,恢复数据库时,断开所有连接 如何在SQL server2005 中把图片取出直接保存成文件 关于sqlserver2000中没有id列的分页问题 ORACLE LOOP 循环 转SQL 如何把一个数据集合以5条记录为一个分组? 卸载英文开发版后装中文企业版,安装后一看怎么还是英文界面呢? 给个例子讲讲Group By。 里面的select怎么做效率能更高点? asp+sql问题 請教觸發囂
这样,数据库会自动加在记录增加时 新记录 此字段会自动加1 ,就象 MS ACCESS 中的那样 ,这样你无需编程就可以完成了。但此字段不能被编辑。
CREATE PROCEDURE sys_get_maxvalue
(@comp_id common_id, /*公司编号*/
@bill_id common_id, /*单据别代码*/
@id_rtn common_id output /*返回新的单据编号*/
)
ASset nocount onbegindeclare @bill_sym_id common_id
select @max_value = max_value
from sys_bill_maxvalue
where comp_id = @comp_id and
bill_id = @bill_id
update sys_bill_maxvalue
set max_value = max_value + 1
where comp_id = @comp_id and
bill_id = @bill_idendGO
(@comp_id common_id, /*公司编号*/
@bill_id common_id, /*单据别代码*/
@max_value common_id output /*返回新的单据编号*/
)
ASset nocount onbeginselect @max_value = max_value
from sys_bill_maxvalue
where comp_id = @comp_id and
bill_id = @bill_id
update sys_bill_maxvalue
set max_value = max_value + 1
where comp_id = @comp_id and
bill_id = @bill_idend