goo*_*yui 10 sql-server-2005 sql-server-2008
SQL Server 2008/2005
主键和唯一键之间的混淆.
我知道主键不允许NULL,而Unique将接受NULL.此外,一个表可以有'n'个唯一键......!
主键是否允许归零?
Rob*_*ing 14
主键可以为零,但如果在列上设置标识,则通常从1开始而不是从零开始.
主键当然可以允许0取决于主键的数据类型.自动生成的PK(身份)可以从0开始,但这不是默认行为,您必须将其设置为从0开始(如果需要,您可以从负数开始).为了获得最佳效果,应在开始向表格输入数据之前完成此操作.
你不能做的是有多个记录,其中0为PK,因为它违反了PK的唯一性要求.
如果您有现有数据并且想要一个特定用途的值为零的记录(例如我们为我们的导入过程输入了一个用户,那么insertedby字段可以显示该记录来自导入),那么你是什么可能想要的是允许手动插入到身份字段中,这样您就可以以所需的值输入这一个特定记录,然后返回到通常的设置.这样做是这样的:
set Identity_insert dbo.table1 ON
insert dbo.table1 (id, myfield)
Values (0, 'test')
set Identity_insert dbo.table1 OFF
Run Code Online (Sandbox Code Playgroud)
不要在应用程序生产代码中执行此操作,这是一个系统管理员类型的任务,只应在常规数据范围之外设置特定记录或插入从其他来源传输的记录(当您知道时)他们现有的id值目前尚未使用).这不应该轻易用于绕过身份字段的限制.特别是它永远不应该被用来填写跳过身份的记录(由于删除或回滚),因为这会破坏使用身份的目的,并且如果没有建立正确的PK/FK关系会导致数据完整性问题.
| 归档时间: |
|
| 查看次数: |
15313 次 |
| 最近记录: |