身份列递增跳跃

14 浏览
0 Comments

身份列递增跳跃

我在我的数据库中遇到了一些有趣的问题。主键的增长方式如下:

1
2
3
4
5
6
7
8
1001

我使用的是EntityFramework或者有时使用LINQ to SQL。

0
0 Comments

Identity列增量跳跃是指在SQL Server 2012中,预分配的序列号丢失导致的问题。解决这个问题的方法有两种。

第一种方法是使用跟踪标志(traceflag)。可以使用以下代码来设置跟踪标志:

DBCC TRACEON (272)

这将解决Identity列增量跳跃的问题。

第二种方法是使用序列(sequence)来替代Identity列,并且不使用缓存。可以使用以下代码创建一个序列:

CREATE SEQUENCE MySeq AS int
  START WITH 1
  INCREMENT BY 1
  NO CACHE;

使用这种方法可以避免Identity列增量跳跃的问题。

更多关于如何解决SQL Server 2012 Identity列增量跳跃问题的信息可以参考这篇文章:http://www.big.info/2013/01/how-to-solve-sql-server-2012-identity.html

希望这些方法对大家有所帮助。祝大家好运!

0
0 Comments

这是完全正常的。微软在SQL Server 2012中添加了序列(sequence)功能。如果你想要恢复旧的行为,可以采取以下方法:

1. 使用跟踪标志272 - 这将导致为每个生成的身份值生成一个日志记录。打开此跟踪标志可能会影响身份生成的性能。

2. 使用NO CACHE设置的序列生成器。

第一个链接已经失效。

我们可以得出以下结论:

问题的原因:

- 在SQL Server 2012中,微软添加了序列功能。

- 当使用序列生成器时,可能会出现身份列增量跳跃的问题。

解决方法:

- 使用跟踪标志272,生成日志记录以解决身份列增量跳跃问题。

- 使用NO CACHE设置的序列生成器。

注意:

- 第一个提供的链接已经失效,无法获取更多关于此问题的解释。

我们可以将以上内容整理为以下文章:

身份列增量跳跃问题及解决方法

在SQL Server 2012中,微软添加了序列(sequence)功能。然而,使用序列生成器可能会导致身份列增量跳跃的问题。这个问题的原因是什么呢?

我们了解到以下原因:

- 在SQL Server 2012中,微软添加了序列功能。

- 当使用序列生成器时,可能会出现身份列增量跳跃的问题。

那么,如何解决这个问题呢?我们得到以下解决方法:

- 使用跟踪标志272,生成日志记录以解决身份列增量跳跃问题。

- 使用NO CACHE设置的序列生成器。

需要注意的是,提供的第一个链接已经失效,无法获取更多关于此问题的解释。

希望以上内容对解决身份列增量跳跃问题有所帮助。

0