Sql server 我想为我在单一选择中创建的序列对象生成多个下一个值

Sql server 我想为我在单一选择中创建的序列对象生成多个下一个值,sql-server,tsql,Sql Server,Tsql,我们在数据库中创建了一个Sequence对象,我们试图从一个select语句中提取多个NEXT值,但它无法正常工作。下面是我正在尝试的问题 Select 1 as PracticeId, NAME_1 as LocationN1Text, NAME_2 as LocationN2Text, federal_tax_id as FTaxId, NULL as NameAbb, NEXT VALUE for UPS.Seq_Communication AS Co

我们在数据库中创建了一个Sequence对象,我们试图从一个select语句中提取多个NEXT值,但它无法正常工作。下面是我正在尝试的问题

Select
   1 as PracticeId,
   NAME_1 as LocationN1Text,
   NAME_2 as LocationN2Text,
   federal_tax_id as FTaxId,
   NULL as NameAbb,

   NEXT VALUE for UPS.Seq_Communication AS CommunicationId1,

   NEXT VALUE for UPS.Seq_Communication AS CommunicationId2,

   NEXT VALUE for UPS.Seq_Communication AS CommunicationId3,

 FROM 
 [Staging_ETR] A

但是上面的查询得到的是通信1、通信2和通信3的相同序列号。但是我们需要不同的序列号。有人能帮忙吗?如何在同一序列对象的同一选择查询中生成不同的序列号?

您在同一行中多次查询同一序列

这是:

当在查询或默认约束中使用函数的下一个值时,如果同一序列对象被多次使用,或者如果同一序列对象在提供值的语句和正在执行的默认约束中都被使用,对于结果集中一行中引用相同序列的所有列,将返回相同的值

要生成不同的数字,您需要在其自己的行中查询每个数字。 如果希望将它们分为三列,则可以应用pivot子句


您不能仅仅将的
下一个值移动到子查询、CTE或
外部应用
来欺骗它生成不同的值。此处不支持该命令。

您在同一行中多次查询同一序列

这是:

当在查询或默认约束中使用
函数的下一个值时,如果同一序列对象被多次使用,或者如果同一序列对象在提供值的语句和正在执行的默认约束中都被使用,对于结果集中一行中引用相同序列的所有列,将返回相同的值

要生成不同的数字,您需要在其自己的行中查询每个数字。 如果希望将它们分为三列,则可以应用pivot子句

您不能仅仅将的
下一个值移动到子查询、CTE或
外部应用
来欺骗它生成不同的值。这是不受支持的