Sql server 2012 Microsoft SQL Server 2012序列不工作-将序列递增2

Sql server 2012 Microsoft SQL Server 2012序列不工作-将序列递增2,sql-server-2012,sequences,Sql Server 2012,Sequences,我刚刚在Windows Server 2008 R2上安装了Microsoft SQL Server 2012,并且正在使用Microsoft JDBC驱动程序4.0 for SQL Server(sqljdbc4.jar v4.0.2206.100)远程访问数据库 我尝试了许多变体,并进行了广泛的搜索,但出于某种原因,序列一直以2而不是1递增 例如: CREATE SEQUENCE MYSEQ START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 99

我刚刚在Windows Server 2008 R2上安装了Microsoft SQL Server 2012,并且正在使用Microsoft JDBC驱动程序4.0 for SQL Server(sqljdbc4.jar v4.0.2206.100)远程访问数据库

我尝试了许多变体,并进行了广泛的搜索,但出于某种原因,序列一直以2而不是1递增

例如:

CREATE SEQUENCE MYSEQ START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 999 CYCLE
SELECT NEXT VALUE FOR MYSEQ - this actually returns 2, not 1 - but that's fine
SELECT NEXT VALUE FOR MYSEQ - this returns 4, not 3 - that's a problem
SELECT NEXT VALUE FOR MYSEQ - this returns 6, not 4 - that's a problem
etc
而且,以值开始并不重要

如果我改为使用增量2,它将一直递增4


有什么想法吗?谢谢

我使用的JDBC字符串是:

jdbc:sqlserver://[host]:[port];DatabaseName=[name];selectMethod=cursor;sendStrin‌gParametersAsUnicode=false jdbc:sqlserver://[host]:[port];DatabaseName=[name];选择方法=光标;森斯特林‌gparametersUnicode=false 当我将字符串更改为:

jdbc:sqlserver://[host]:[port];DatabaseName=[name] jdbc:sqlserver://[host]:[port];DatabaseName=[名称]
返回的序列与预期的一样:1、2、3等

我使用的JDBC字符串是:

jdbc:sqlserver://[host]:[port];DatabaseName=[name];selectMethod=cursor;sendStrin‌gParametersAsUnicode=false jdbc:sqlserver://[host]:[port];DatabaseName=[name];选择方法=光标;森斯特林‌gparametersUnicode=false 当我将字符串更改为:

jdbc:sqlserver://[host]:[port];DatabaseName=[name] jdbc:sqlserver://[host]:[port];DatabaseName=[名称]
返回的序列与预期一致:1、2、3等无法在SQL Server 2012中复制此序列-按设计工作,返回
1、2、3、4、5、6、7、…
。您的代码/环境中一定存在导致这种行为的其他原因,但我认为这不是SQL Server 2012的错,我发现了这个问题。我的JDBC字符串有:JDBC:sqlserver://::;数据库名=;选择方法=光标;sendStringParametersAsUnicode=false。当我删除数据库名称后的所有内容时,效果很好。很抱歉你应该把它作为你自己问题的答案——也许这会帮助其他遇到同样问题的人。无法在SQL Server 2012中重现这一点——按设计工作,返回
1、2、3、4、5、6、7,…
。您的代码/环境中一定存在导致这种行为的其他原因,但我认为这不是SQL Server 2012的错,我发现了这个问题。我的JDBC字符串有:JDBC:sqlserver://::;数据库名=;选择方法=光标;sendStringParametersAsUnicode=false。当我删除数据库名称后的所有内容时,效果很好。很抱歉你应该把它记下来作为你自己问题的答案——也许这会帮助其他遇到同样问题的人。哇,我不会认为selectMethod有什么不同。对我来说好像是个司机迷。jTDS驱动程序在使用游标时似乎没有这种行为。哇,我不会想到selectMethod会有什么不同。对我来说好像是个司机迷。jTDS驱动程序在使用游标时似乎没有这种行为。