代理键(surrogate ['sʌrəɡət] key)也叫人造键(artificial key),可以用作主健,而且没有任何内在的业务/数据意义。代理键和数据独立,用于为表提供唯一的记录定位。代理主键的一个巨大优势在于它们不需要修改。如果使用业务数据来定义键(自然键),比如名和姓,随着时间的推移它们的值可能会不断修改。代理键不需要修改,因为它们只在表的上下文之内有意义。
    下面说明使用IDENTITY属性列和uniqueidentifier数据类型列生成和管理代理键的方法。
    使用IDENTITY列属性,可以为表中的一个列定义一个自动增长的数字值。IDENTITY列是代理主键列中最常用的,因为它们比非数字数据类型的自然键更紧凑。当一个新行插入到有IDENTITY列属性的表中的时候,该列会插入一个唯一的递增值。 IDENTITY列的数据类型可以是int、tinyint、smallint、bigint、decimal或者numeric。一个表只能定义。一个标识列,并且定义的IDENTITY列不能有DEFAULT值或与它相关的规则设置。
    IDENTITY属性列的基本语法如下:
    [IDENTITY[ (seed ,increment)][NOT FOR REPLICATION]]
    IDENTITY属性接受两个值:种子和增量。种子(seed)定义了IDENTITY列的起始数字,而增量(increment)定义了为了得到表中的下一行的值而加到前面的IDENTITY列的值。默认的种子和增量都是1。NOT FOR REPLICATION选项能在复制的时候保存IDENTITY列数据的原始值,保留被外键约束引用的任何值(防止使用IDENTITY列作为主键和外键引用的那些表之间的关系被打破)。
    和IDENTITY列不同,它确保定义的表中数据的唯一性,而uniqueidentifier属性确保一个很高级别的唯一(微软称全球每一个联网的数据库都会是唯一的)。这对于那些从多个数据源合并数据的应用程序来说非常重要,唯一值不能跨表复制。这个唯一ID存储在uniqueidentifier数据类型中,由NEWID系统函数生成。ROWGUIDCOL是列定义中指定的记号,允许我们不仅仅根据列的名,还能根据ROWGUIDCOL来查询。
    尽管使用uniqueidentifier数据类型和NEWID值作为主键更唯一,但是它比基于整数值的IDENTITY列占用的空间更多。如果你只关心值在表中的唯一性,或许应该使用整数的代理键,特别是对于非常大的表米说。然而,如果唯一性是必需的,你也可能在将来合并数据源,那么uniqueidentifier和NEWID或许是你的最佳选择。

SqlServer2008实例25 代理键相关推荐

  1. postgresql中代理键

    代理键是用来替代复合主键的,因为有的复合主键特别长,增大了搜索的负担. 我们在创建代理键的时候是使用serial数据类型的,serial是自动递增的哦,且不会变化相当于是主键了. 我们通常这样写: 在 ...

  2. 选择主键:自然键还是代理键?

    [转自]http://blog.csdn.net/haiross/article/details/21388997 [原文地址]http://www.agiledata.org/essays/keys ...

  3. Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中

    场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detai ...

  4. mysql维表的代理键字段_mysql多维数据仓库指南--第三篇第12章(2)

    宾夕法尼亚州地区客户维 在本节我将用宾夕法尼亚州地区客户的子集维度来解释第二种维度子集的类型.我也将向你说明如何测试该子集维度. 相对的,一个向上钻取的维包含了它基础维的所有更高级别的数据.而一个特定 ...

  5. 数仓中指标-标签,维度-度量,自然键-代理键,数据集市等各名词解析及关系

    序列号 内容 链接 1 大数据知识面试题-通用(2022版) https://blog.csdn.net/qq_43061290/article/details/124819089 2 大数据知识面试 ...

  6. 数仓模型设计时代理键的使用

    在关系型数据库设计中,代理键是在当资料表中的候选键都不适合当主键时,例如资料太长,或是意义层面太多,就会用一个attribute来当代理主键,此主键可能是用流水号,来代替可辨识唯一值的主键. 在数据仓 ...

  7. 数仓中指标-标签,维度-度量,自然键-代理键等各名词深度解析

    作为一个数据人,是不是经常被各种名词围绕,是不是对其中很多概念认知模糊.有些词虽然只有一字之差,但是它们意思完全不同,今天我们就来了解下数仓建设及数据分析时常见的一些概念含义及它们之间的关系. 本文首 ...

  8. mysql 创建外键实例_mysql 外键创建实例

    SQL FOREIGN KEY 外键实例教程 外国的SQL关键的制约因素 外键在一个表点,主键在另一就座. 让我们说明了外国钥匙与一个例子.看看以下两个表格: 在"人"表: Las ...

  9. Nginx配置实例-反向代理实现浏览器请求Nginx跳转到服务器某页面

    场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detai ...

最新文章

  1. golang 代码实现 修改配置文件
  2. 02027_线程池练习:返回两个数相加的结果
  3. WinForm中的MVC模式--MVP模式
  4. 无人机是计算机什么方面的应用,无人机测绘可以应用到哪些方面呢?
  5. C#程序只允许运行一个实例的解决方案
  6. MeteoInfoLab脚本示例:OMI Grid HDF数据
  7. 眼前一亮的UI设计案例|插画世界里的网页首图
  8. VSFTP的PASSIVE模式的防火墙设置
  9. 兼容性极好的圆角边框
  10. fps200多正常不_AMD处理器扬眉吐气,腾讯游戏不再A黑!LOL最高FPS459平均200多
  11. Windows 11 Insider Preview Build 25247.1000(rs_prerelease)更新内容
  12. java socket多人聊天室_如何运用Java socket实现多人聊天室功能
  13. 利用微软Text-To-Speech朗读文本
  14. opencv入门系列教学(五)图像的基本操作(像素值、属性、ROI和边框)
  15. 安卓11添加第三方输入法替换默认输入法
  16. QEMU搭建ARM linux开发环境
  17. 前端背景图放置_CSS 背景图片排版
  18. vue项目中预览pdf文件
  19. BIN文件转dfu文件 进行刷机 问题
  20. 论文笔记-精读-8.24-Pruning neural networks without any data by iteratively conserving synaptic flow

热门文章

  1. 乐器教育APP开发解决方案
  2. 工商管理学计算机应用基础题,计算机应用基础全国网考选择题库(计算机基础知识篇).pdf...
  3. image-perspective-transformation-图片透视变换(投影变换)
  4. 镜像制作转换上传操作
  5. 基于拉普拉斯平滑项的视频图像去雾及重建的实现
  6. java 自定义xsd_spring自定义标签之 规范定义XSD
  7. Top 命令中的 Irix 模式与 Solaris 模式(解释单个进程cpu占比为何会超过100%?)
  8. Linux基础命令 man命令使用方法
  9. ISO27001笔记
  10. oracle INS-13001 环境不满足最低要求解决方法