- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章DBCC CHECKIDENT 重置数据库标识列从某一数值开始由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
DBCC CHECKIDENT(N'dbo.Orders', RESEED, 0); DBCC CHECKIDENT 语法 DBCC CHECKIDENT ( table_name [ , { NORESEED | { RESEED [ , new_reseed_value ] } } ] ) [ WITH NO_INFOMSGS ]参数 table_name 是要对其当前标识值进行检查的表名。指定的表必须包含标识列。表名必须符合标识符规则。 NORESEED 指定不应更改当前标识值。 RESEED 指定应该更改当前标识值。 new_reseed_value 用作标识列的当前值的新值。 WITH NO_INFOMSGS 取消显示所有信息性消息。 结果集 无论是否为包含标识列的表指定了任何选项,DBCC CHECKIDENT 都返回以下信息(返回值可能有所不同): Checking identity information: current identity value '290', current column value '290'. DBCC execution completed. If DBCC printed error messages, contact your system administrator.注释 对当前标识值所做的具体更正取决于参数规范。 DBCC CHECKIDENT 命令 标识更正或所做的更正 DBCC CHECKIDENT ( table_name, NORESEED ) 不重置当前标识值。DBCC CHECKIDENT 将返回标识列的当前标识值和当前最大值。如果这两个值不相同,则应重置标识值,以避免值序列中的潜在错误或空白。 DBCC CHECKIDENT ( table_name ) 或者 DBCC CHECKIDENT ( table_name, RESEED ) 如果表的当前标识值小于标识列中存储的最大标识值,则使用标识列中的最大值对其进行重置。 DBCC CHECKIDENT ( table_name, RESEED, new_reseed_value ) 将当前标识值设置为 new_reseed_value。如果自从创建表以来未在表中插入任何行,或者已使用 TRUNCATE TABLE 语句删除所有行,则在运行 DBCC CHECKIDENT 之后插入的第一行将使用 new_reseed_value 作为标识。否则,插入的下一行将使用 new_reseed_value + 当前增量值。 如果该表不为空,那么将标识值设置为小于标识列中的最大值的数字时,将会出现下列情况之一: 如果标识列中存在 PRIMARY KEY 或 UNIQUE 约束,则随后在表中执行插入操作时将生成错误消息 2627,原因是生成的标识值将与现有值冲突。 如果不存在 PRIMARY KEY 或 UNIQUE 约束,则随后的插入操作将产生重复的标识值。 异常 下表列出了 DBCC CHECKIDENT 不自动重置当前标识值时的条件,并提供了重置该值的方法。 条件 重置方法 当前标识值大于表中的最大值。 执行 DBCC CHECKIDENT (table_name, NORESEED) 可以确定列中的当前最大值,然后指定该值作为 DBCC CHECKIDENT (table_name, RESEED, new_reseed_value) 命令中的 new_reseed_value。 或者 在将 new_reseed_value 设置为非常低的值的情况下执行 DBCC CHECKIDENT (table_name, RESEED, new_reseed_value),然后运行 DBCC CHECKIDENT (table_name, RESEED) 以更正该值。 删除表中的所有行。 在将 new_reseed_value 设置为所需开始值的情况下执行 DBCC CHECKIDENT (table_name, RESEED, new_reseed_value)。 更改种子值 种子值是针对装入表的第一行插入到标识列的值。所有后续行都包含当前标识值和增量值,其中当前标识值是为当前表或视图生成的最新标识值。有关详细信息,请参阅创建和修改标识符列。 不能使用 DBCC CHECKIDENT 执行下列任务: 更改创建表或视图时为标识列指定的原始种子值。 重设表或视图中的现有行的种子值。 若要更改原始种子值并重设所有现有行的种子值,必须删除并重新创建标识列,然后为标识列指定新的种子值。当表包含数据时,还会将标识号添加到具有指定种子值和增量值的现有行中。无法保证行的更新顺序。 权限 调用方必须拥有表,或者是 sysadmin 固定服务器角色、db_owner 固定数据库角色或 db_ddladmin 固定数据库角色的成员。 示例 A. 根据需要重置当前标识值 以下示例根据需要重置 AdventureWorks 数据库中 Employee 表的当前标识值。 USE AdventureWorks; GO DBCC CHECKIDENT ("HumanResources.Employee"); GO B. 报告当前标识值 以下示例报告 AdventureWorks 数据库的 Employee 表中的当前标识值,但如果该标识值不正确,不会进行更正。 USE AdventureWorks; GO DBCC CHECKIDENT ("HumanResources.Employee", NORESEED); GO C. 强制将当前标识值设为新值 以下示例强制将 Employee 表中的 EmployeeID 列中的当前标识值设置为 300。因为该表有现有行,因此下一个插入行将使用 301 作为值,即当前标识值加上 1(为该列定义的当前增加值)。 USE AdventureWorks; GO DBCC CHECKIDENT ("HumanResources.Employee", RESEED, 300); GO 。
最后此篇关于DBCC CHECKIDENT 重置数据库标识列从某一数值开始的文章就讲到这里了,如果你想了解更多关于DBCC CHECKIDENT 重置数据库标识列从某一数值开始的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
DBCC CHECKIDENT(N'dbo.Orders', RESEED, 0); DBCC CHECKIDENT 语法 DBCC CHECKIDENT (&
我有一个表,它有一个 id,它既是表的身份又是表的主键。什么时候运行这个 Use devdb Select * from tablename order by did desc 有效,我看到了数据。当
我正在尝试利用 Consul .NET API 通过 TTL 注册和启动运行状况检查。首先,我使用以下代码注册我的服务: var address = node.Address; var id = Se
在每次 DAO 测试之前,我都会清理我的数据库,并且我需要重置一些表的标识值。我创建了以下存储过程: CREATE PROCEDURE SET_IDENTITY @pTableName
我正在使用 Windows Azure Sql。 我已使用 DBCC CHECKIDENT ('Table_Name', RESEED, 1) 重新设定表的种子。没有主键为 36 的行。当我尝试插入行
我正在尝试做这样的事情: declare @myCurrentSeedValue int; select @myCurrentSeedValue = DBCC CheckIdent('MyTable'
我有一个不同的架构(除了 dbo 之外),我在其中创建了一个表,架构“Chemical”。 我尝试了此 DBCC CHECKIDENT 的 4 种不同变体,它们都返回相同的错误: “‘.’附近的语法不
我使用此代码来重置表上的身份: DBCC CHECKIDENT('TableName', RESEED, 0) 这在大多数情况下工作正常,第一次插入时我将 1 插入到 Id 列中。但是,如果我删除数据
目前在某些操作上我必须删除旧数据并插入新数据。但我注意到尽管删除了数据,但身份列并未重置并从其最后一个最大值继续。所以我使用 DBCC CheckIdent 来实现所有这一切都发生在交易中。我可以将交
对于我的单元测试,我有一个自动化过程,可以逐表构建数据库的副本。我首先运行 SELECT INTO 并添加主键和任何索引。 我用数据复制了一些表,对于那些没有数据的表,我希望重置身份种子。 为了实现这
我读到的有关重新播种的所有文档都表明了以下内容: SET @maxIdentityValue = (SELECT MAX(id) FROM 表名) 运行DBCC CHECKIDENT('表名', RE
这是我第一次在这里提出问题,但我过去曾多次使用 stackoverflow 来寻找代码中遇到的问题的解决方案。 我正在一个 php 站点上的数据库传输页面上工作,该页面上传 csv 文件并更新数据库,
我以非 sa 用户“bhk”身份登录到 SQL Server 2005 数据库,该用户仅是“公共(public)”服务器角色的成员。以下代码尝试在用户“bhk”调用的存储过程中执行。这行代码... T
在 SQL Server 2012 中,以下查询为标识列 myTable_id 设定种子从 2 而不是 1。为什么? myTable_id也是PK。 DELETE FROM myTable; GO S
使用 SQL Server 数据库。使用数据库版本控制工具向查找表添加了 50 个新项目,因此将在所有三个数据库上运行相同的脚本。数据库有 Dev、QA 和 Prod 版本,由于政治原因,prod 无
我是一名优秀的程序员,十分优秀!