sql server 中是否有一个选项可以在数据库级别配置标识列的默认起始值(种子)。
我希望默认情况下,每个使用标识列创建的表,第一个值将从 3000 开始。而不是来自 1 。我知道如何在表格级别执行此操作。但是在数据库级别有可能吗?
10倍
sql server 中是否有一个选项可以在数据库级别配置标识列的默认起始值(种子)。
我希望默认情况下,每个使用标识列创建的表,第一个值将从 3000 开始。而不是来自 1 。我知道如何在表格级别执行此操作。但是在数据库级别有可能吗?
10倍
不,这在数据库级别是不可能的。
IDENTITY
不是数据类型,它是表的列定义。我想知道您是否可以在表中拥有一个用户定义的数据类型,它始终是一个具有您想要的设置的标识列。然后你会让开发人员在表中使用该数据类型。我查看了这份文件,但我不明白什么是可能的,抱歉。
https://learn.microsoft.com/en-us/sql/t-sql/statements/create-type-transact-sql
创建表后,您可以使用“DBCC CHECKIDENT”操作一次检查一个表的标识列信息。
https://learn.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkident-transact-sql
为此,我将编写一个脚本,为每个具有标识列的表生成“DBCC”命令作为文本输出。就像是:
然后你需要一些东西来查看结果并找到不满意的值。
您可以改变命令,以覆盖和设置新行中标识列中使用的值,但不会阻止您将其设置为表中行中已存在的值,即生成重复键。这可以通过仅在表没有行时进行更改来避免。无论如何,在不考虑您的条件的情况下修复已经输入的数据可能需要单独进行。
您可以使用DDL 触发器在标识列从 3000 开始的所有新创建的表中重新植入标识值。