- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近从 PostgreSQL 数据库迁移到 SQL Server 数据库。要切换数据,我必须启用 IDENTITY_INSERT。我们发现,在任何表中执行插入操作时,由于重复的标识值(设置为主键),我遇到了各种奇怪的错误。
我有很多 table 。自动重新播种每个表的标识以使其位于 max(RID)
之后的最简单方法是什么?
最佳答案
使用 this link 中的信息与 SQL 函数结合使用,从需要重置的每个表中获取 max(RID)。例如,如果您想在 25000 处启动主键种子,请使用以下代码 (StartSeedValue - 1)
DBCC CHECKIDENT('myTable', RESEED, 24999)
所以综合起来,你应该得到这样的结果
DECLARE @maxVal INT
SELECT @maxVal = ISNULL(max(ID),0)+1 from mytable
DBCC CHECKIDENT('mytable', RESEED, @maxVal)
抱歉,伪代码,自从我编写 SQL 函数以来已经有一段时间了:)
编辑:
感谢您的帮助,将 INTEGER 更改为 INT
USE YourDBName
GO
SELECT *
FROM sys.Tables
GO
这将为您提供数据库中所有用户表的列表。使用此查询作为“循环”,这应该允许重置所有表上的种子。
关于sql-server - 使用identity_insert后如何自动重新播种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2923855/
我在数据库中有一张表 Foo命名 Bar ,其中有一列名为 ID ,它是主键,这个数据库存在于开发 SQL Server 上。 我正在尝试将数据从我们的生产服务器复制到开发服务器,以便我可以使用所述数
这个问题在这里已经有了答案: Set start value for column with autoincrement (4 个回答) 3年前关闭。 我在 SQL Server 上工作,我想将一些行
我在 SQL Server 2012 和 2008 R2 中运行存储过程时遇到问题,而它在 SQL Server 2000 和 2005 中运行良好。 请参阅下面的代码: SELECT * INTO
是否可以在表触发器中打开它? 我尝试创建一个触发器SET IDENTITY_INSERT 表名打开 但是当我打开触发器定义时,我发现该语句不存在.... 这是我更改触发器以添加 IDENTITY_IN
我有一个脚本,可以创建整个数据库并将所有记录插入到几十个表中。它工作得很好,除非在处理过程中出现一些问题,并且当脚本在插入期间失败且在再次设置为 OFF 之前,表会保持 IDENTITY_INSERT
我的数据库中有几个表只包含“元数据”。例如,我们有不同的组类型、contentItemTypes、语言等。 问题是,如果您使用自动编号,则可能会产生间隙。id 在我们的代码中使用,因此数字非常重要。
我不太熟悉 SQL Server,但我正在编写一个脚本,该脚本在 IDENTITY ON 的表上显式设置插入值。由于一些计划不周的架构 - 看起来我将不得不显式插入一些任意高的数字(例如 10,000
我有一个 MVC Web 应用程序,模型中有一个表,我想添加到其中。我设置了主键和其他数据字段,但每次尝试添加到表中时,都会出现以下错误: “当 IDENTITY_INSERT 设置为 OFF 时,无
这是我的数据库脚本, CREATE TABLE [dbo].[MyTable]( [ID] [int] IDENTITY(1,1) NOT NULL, [Code] [nvarchar](25) NU
我目前正在从事一个数据迁移项目,对于与性能相关的问题,我想预定义一组身份,而不是让表生成它们。 我发现将 identity 属性添加到列中并不容易,所以我想使用 IDENTITY_INSERT ON
我正在使用数据集插入从旧数据库转换而来的数据。要求是维护当前的 Order_ID 编号。 我尝试过使用: SET IDENTITY_INSERT orders ON; 当我在 SqlServer Ma
我有一个已删除的文件存档数据库,用于存储已删除文件的 ID,我希望管理员能够恢复该文件(以及用于链接文件的相同 ID)。我不想将 Identity_insert 从整个表中删除,因为增量 1 效果很好
我正在尝试使用带有服务引用的 Silverlight C# 在 SQL 表中创建一个包含数据的新行。我收到以下错误: IDENTITY_INSERT is set to OFF. 但我希望自动提供 C
数据库中的“类别”表定义如下: CategoryID - PK ,identity specification ON (only this column has identity) Descri
我不熟悉 postgresql 脚本。 我已经在 ms sql server 中使用了这个脚本: SET IDENTITY_INSERT my_table ON INSERT INTO my_tabl
情况 我有一个 SQL 脚本,我需要将一些基本数据推送到我的数据库。因此,我使用以下脚本(和其他脚本)。我想为我手动创建的行手动提供一个主键。 问题 如果我执行脚本,它会提示我需要启用 IDENTIT
我正在尝试将订单详细信息插入我的数据库,但它一直在说: Cannot insert explicit value for identity column in table 'Orders' when
首先,我要求管理员删除此帖子: '我如何制作主键作为自动增量在 vb-net-2008/959787#959787' 因为我遇到了评论问题,当我尝试添加评论时,错误消息很明显:“评论需要 50 个声望
我有一个存储过程,我想授予它插入身份的权限,同时不授予调用它的受限用户 ALTER TABLE 权限。这可能吗? 这是我的存储过程: CREATE PROCEDURE [dbo].[AddIntern
我想将表 Equipment 从一个数据库 MyDBQA 复制到我们的测试数据库 MyDB。表中有一个标识列,它是主键(int,不为空)。 但是我得到了一个错误: Msg 8101, Level 16
我是一名优秀的程序员,十分优秀!