sql-server – DB中用于生成主键的表?
您是否曾使用单独的表来“生成”DB的人工主键(以及为什么)?我的意思是拥有一个包含两列,表名和当前ID的表 – 通过简单地用该表名锁定行,获取键的当前值,增加它,您可以使用该表为某些表获取新的“ID”一个,解锁行.为什么您更喜欢这个超过标准整数标识列?
附: “想法”来自福勒斯企业应用架构模式,顺便说一下…… 解决方法这称为Hi / Lo分配.你可以这样做,你的表上的INSERT触发器从这个表中获取ID,并在你获得你的ID之前或之后递增它,具体取决于你的选择. 当您必须处理多个数据库引擎时,通常会使用此方法. Oracle中的自动增量标识符是通过SEQUENCE,您可以在数据表的BEFORE INSERT TRIGGER中使用SEQUENCE.NEXTVALUE递增. 相反,SQL Server具有IDENTITY列,本机自动增量,这由DBE本身管理. 为了使您的软件能够在两个DBE上工作,您必须达到某种标准,然后用于此的最常见的“标准”是对主键的Hi / Lo分配. 这是一种方法.目前,使用NHM的ORM Mapping工具,它通过配置提供,因此您需要更少的关注应用程序和数据库方面. 编辑#1 因为这种操作不能用于全局范围,所以每个数据库或数据库模式都必须有这样的表.这样,每个模式都与另一个模式无关.但是,一个模式中的数据不能使用相同的密钥隐式地移向另一个模式,因为它可能与已存在的行冲突. 对于安全模式,它访问与另一个模式或用户相同的数据库,因此特定安全模式不应存在其他表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sqlserver数据导入hdfs和hive的解决方案
- SQL Server一次SQL调优数据库性能问题后的过程(300W)
- Error creating bean with name 'transactionManager&a
- sqlserver 查询当日、当月数据
- Nodejs+express+SqlServer
- sql server 2005中使用with实现递归的方法
- 数据库 – 在“人员”主键和“产品”表的自然键之间进行确定
- sql-server – 关闭SSMS中的数据库图
- sqlServer把数据库导入导出Excel表&&开启关闭xp_cm
- Sqlserver if else case when