Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft SQL Server:如何从任意范围获取下一个可用整数_Sql_Sql Server - Fatal编程技术网

Microsoft SQL Server:如何从任意范围获取下一个可用整数

Microsoft SQL Server:如何从任意范围获取下一个可用整数,sql,sql-server,Sql,Sql Server,我需要在Microsoft SQL Server中将数据从一个表迁移到另一个表。当迁移到新表时,我想为某一列指定范围为0-127的下一个可用整数 一个基本的实施是: 插入表格(columnName)从表格中选择MAX(columnName)+1 然而,这并不涉及0-127的任意范围。如何将操作限制在此范围内 我还要补充一点,我不想在这里使用标识插入,即使它可能有意义 编辑:获取0-127值后,它应该循环并重新开始。您显示的查询将为每条记录插入下一个数字 您想要的是使用row_number()+M

我需要在Microsoft SQL Server中将数据从一个表迁移到另一个表。当迁移到新表时,我想为某一列指定范围为0-127的下一个可用整数

一个基本的实施是:
插入表格(columnName)从表格中选择MAX(columnName)+1

然而,这并不涉及0-127的任意范围。如何将操作限制在此范围内

我还要补充一点,我不想在这里使用标识插入,即使它可能有意义


编辑:获取0-127值后,它应该循环并重新开始。

您显示的查询将为每条记录插入下一个数字

您想要的是使用row_number()+MAX(columnName)

编辑:为了将数字限制在指定的最大值,在这一点上回到起点,你可以这样做,即使我不认为这有什么用处:

case when (row_number() over(columnName) + max(columnName)) > 127
then (row_number() over(columnName) + max(columnName)) % 127
else row_number() over(columnName) + max(columnName)
end

提示:
identity
列。不使用identity-我将编辑问题以澄清这一点。对不起!然后使用BTW
MAX(columnName)+1
将很容易返回重复的值,例如,如果删除了最大记录,那么如果表中需要迁移的行超过128行,会发生什么情况?