由于错误 "Invalid object name <sequence>.",我无法使用所有 Microsoft SQL 服务器序列

I cannot use all the Microsoft SQL Server sequences because of the error "Invalid object name <sequence>."

由于错误 Invalid object name <sequence>.

,我无法使用所有 Microsoft SQL 服务器序列

该问题影响 Microsoft SQL Server 2012(但也影响 Microsoft SQL Server 2018)。 我在 SQL Server Management Studio (Microsoft SQL Server 2012) 中创建了一个名为 WebClient1 的用户。 由于错误 Invalid object name <sequence>.

,我无法使用所有 Microsoft SQL 服务器序列

我创建了以下序列:

USE [AlphaShop]
GO

USE [AlphaShop]
GO

/****** Object:  Sequence [dbo].[Test_Seq]    Script Date: 09/07/2019 10:56:28 ******/
CREATE SEQUENCE [dbo].[Test_Seq] 
 AS [bigint]
 START WITH 500
 INCREMENT BY 50
 MINVALUE 500
 MAXVALUE 9223372036854775807
 CACHE 
GO

SQL 查询如下:

select
    next_val as id_val 
from
    Test_Seq with (updlock,
    rowlock)

错误是:

Messaggio 208, livello 16, stato 3, riga 1
Il nome di oggetto 'Test_Seq' non è valido.

翻译可能如下:

Message 208, level 16, state 3, row 1
Invalid object name 'Test_Seq'.

在对象资源管理器中,我可以看到序列 "dbo.Test_Seq"。 数据库的名称是 AlphaShop。 在可用数据库列表框中,我选择了正确的数据库 AlphaShop。

用户的身份验证类型是"Authentication of SQL Server"。 用户具有角色 "public"。 请帮忙。 非常感谢。

我尝试执行以下 SQL 命令,但没有解决问题:

ALTER LOGIN WebClient1 WITH DEFAULT_DATABASE = [AlphaShop];
select
    next_val as id_val 
from
    Test_Seq with (updlock,
    rowlock)

预期结果由序列的下一个值组成。

不是 FROM,是 FORNEXT VALUE 不是 return 数据集(它不是 table-value 函数)它 return 是一个标量值,因此您在其中引用 SELECT,而不是FROM:

SELECT NEXT VALUE FOR dbo.Test_Seq AS id_val;

db<>fiddle