C ChenHui Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-10 #1 我想在SQL Server 6.5的一个用户档案上产生一个唯一的用户号。请 在SQL Server端该如何做,在DelPhi这边该如何做.必须考虑多个人同时输入的问题.
Z zaoya Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-10 #2 SQL Server具体地实现我没做过,但我想可以通过自动增加字段来做
方 方栩 Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-10 #3 生成该表时在SQL Server端的SQL编辑器或者Delphi的query上加入一句SQL语句 CREATE TABLE "xxx.db" ( CUSTOMER_NO CHAR(20), NAME CHAR(15), ...... PRIMARY KEY(CUSTOMER_NO) ) 将该用户号设成主键即可
生成该表时在SQL Server端的SQL编辑器或者Delphi的query上加入一句SQL语句 CREATE TABLE "xxx.db" ( CUSTOMER_NO CHAR(20), NAME CHAR(15), ...... PRIMARY KEY(CUSTOMER_NO) ) 将该用户号设成主键即可
C ChenHui Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-10 #4 SQL Server上没有自动增加字段.另外,方栩可能领会错意思了.我是想在程 序中为CUSTOMER_NO自动产生一个唯一编号。我用SQL Server的触发器和默认字 段做但在DELPHI中新增一条记录(但没有POST)时,却看不到这个关键字.
SQL Server上没有自动增加字段.另外,方栩可能领会错意思了.我是想在程 序中为CUSTOMER_NO自动产生一个唯一编号。我用SQL Server的触发器和默认字 段做但在DELPHI中新增一条记录(但没有POST)时,却看不到这个关键字.
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-10 #5 胡说,有的! 如果在程序中做,应该在POST前做,这样减少重复性,可以捕获是否出错. 如果出错,重新生成ID.
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-11 #6 取一个很大的随机数作为ID, 然后SELECT ID FROM SOMETABLE WHERE ID=这个随机数 返回空集表示ID是唯一可以用的, 如果出现重复(可能性几乎不存在), 则再生成一个随机ID. 再判断
取一个很大的随机数作为ID, 然后SELECT ID FROM SOMETABLE WHERE ID=这个随机数 返回空集表示ID是唯一可以用的, 如果出现重复(可能性几乎不存在), 则再生成一个随机ID. 再判断
F fx Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-12 #7 用随机数的方法,当记录数已很多的时候再增加新记录恐怕不合适。 可以在数据库中建一表,其中设一数值型字段,记录已用过的最大的值。 生成ID号时,取出该值+1,按一定的规则得到ID,如'abc-00123'等 最后更新字段值+1
用随机数的方法,当记录数已很多的时候再增加新记录恐怕不合适。 可以在数据库中建一表,其中设一数值型字段,记录已用过的最大的值。 生成ID号时,取出该值+1,按一定的规则得到ID,如'abc-00123'等 最后更新字段值+1
王 王寒松 Unregistered / Unconfirmed GUEST, unregistred user! 1999-03-13 #8 这个问题讨论好多次了, 可以使用 Sql Server 的 类型为Indentity的字段 定义一个非空字段为整型后,然后在 高级选项里设置该字段设置该字段为 Inentity 字段就可以了 插入过程时,如果是在多人环境下, 建议你使用存储过程,这样做的好处是 插入速度快, 并且可减少锁的问题, 插入动作完成后, 可使用 下面语句将刚刚插入的序列号返回回来 insert into ATable ........... select @ATempInt= @@Inentity Retun @ATempInt 第2种方法是做一个小表,表中只记录一条记录,记录当前你要插入的表的ID号数值 那一个客户访问到了这条记录,就给这条记录加一, (注意要锁表), 然后用这条记录记录的数值做ID号去更新你的主数据库就可以了
这个问题讨论好多次了, 可以使用 Sql Server 的 类型为Indentity的字段 定义一个非空字段为整型后,然后在 高级选项里设置该字段设置该字段为 Inentity 字段就可以了 插入过程时,如果是在多人环境下, 建议你使用存储过程,这样做的好处是 插入速度快, 并且可减少锁的问题, 插入动作完成后, 可使用 下面语句将刚刚插入的序列号返回回来 insert into ATable ........... select @ATempInt= @@Inentity Retun @ATempInt 第2种方法是做一个小表,表中只记录一条记录,记录当前你要插入的表的ID号数值 那一个客户访问到了这条记录,就给这条记录加一, (注意要锁表), 然后用这条记录记录的数值做ID号去更新你的主数据库就可以了
C ChenHui Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-03 #9 谢谢各位的帮忙,因为一直连不网,所以,未能及时给各位加分, 请多原谅。
T tangyin Unregistered / Unconfirmed GUEST, unregistred user! 1999-04-09 #10 这个问题,使用identity字段有时往往不合用户需要(int型,且简单递增)。 我想其实可以设置该字段为unique.然后,使用trigger调用存储过程,灵活一些。 典型的一个案例是财务系统中的凭证号 (99010232) ,前四位为年月,后四位为 该年该月中凭证流水号。
这个问题,使用identity字段有时往往不合用户需要(int型,且简单递增)。 我想其实可以设置该字段为unique.然后,使用trigger调用存储过程,灵活一些。 典型的一个案例是财务系统中的凭证号 (99010232) ,前四位为年月,后四位为 该年该月中凭证流水号。