identity字段的值无法修改
而且在导入数据时,你必须开启identity_insert,强制导入identity字段值,否则各表的关系就无法保障.

解决方案 »

  1.   

    我用identity,有的也作为PK,
    交互不会带来什么麻烦,关键就是这个列是由SQLSERVER控制,在用户手工插入前必须用set identity_insert 来设置一下,还有就是会出现不连续号的情况
      

  2.   

    我知道identity字段的值无法修改
    也知道在导入数据时,必须set identity_insert on,关键是:我在设置部门、业务员等类似的表时,部门编号、人员编号等都是用IDENTITY列,这样做不好吗?如果不用IDENTITY列,而用字符串不是比IDENTITY列更麻烦吗?这类字段大家都用什么类型?
      

  3.   

    部门编号、人员编号等采用带规则的字符串也没有什么不好呀,更多时候比毫无意义的序列号在使用时更管用。当然,用IDENTITY很简单,不用写程序去控制。
      

  4.   


    我知道identity字段的值无法修改
    也知道在导入数据时,必须set identity_insert on,关键是:我在设置部门、业务员等类似的表时,部门编号、人员编号等都是用IDENTITY列,这样做不好吗?如果不用IDENTITY列,而用字符串不是比IDENTITY列更麻烦吗?这类字段大家都用什么类型?
    不过我还是觉得象设置部门、业务员等类似的表时,部门编号、人员编号等都是用IDENTITY列是很好的,因为这些东西一般不会修改,导数据时用set identity_insert on就行了。
    有没有更好的理由不用IDENTITY作为表的主键的数据类型?
      

  5.   

    使不使用identity,可能更多的是个人习惯吧!
    对于一个实际的问题,也不一定identity就解决不了!
      

  6.   

    不用IDENTITY列,而用字符串不是比IDENTITY列更麻烦吗?这类字段大家都用什么类型?
    用guid呀,直接newid()就得到一个不是也很方便吗?
      

  7.   

    请问大家说得'导入数据' 是指的什么操作啊?
    是说平时从别的数据库导入SQLSERVER吗?
      

  8.   

    其实最主要的是你在客户端新增行时,不能控制它的值, 等保存后,必须要有一个编程把最新的值返回客户端用于同步数据, 或者客户端重新查询数据. 总之很烦麻. 对于编码之类的字段,建议用字符型的,  以后也好更改. 比如那天客户要求必须采购部门的Id 以 "CG"开头.
      

  9.   

    这个问题我也很困惑
    好像都说最好不要用identity或是数字型的作主键,可是如果用字符型的,那在web application中怎么防止那个id不唯一呢?(例如jsp中,知道的能否告诉一声,thanks~)
    另外不知道大家数据库设计是否都遵守那些范式?
    唉,问题不知道怎么表达,郁闷