Я не могу использовать все последовательности Microsoft SQL Server из-за ошибки «Неверное имя объекта <sequence>». - PullRequest
1 голос
/ 10 июля 2019

Я не могу использовать все последовательности Microsoft SQL Server из-за ошибки Invalid object name <sequence>.

Проблема касается Microsoft SQL Server 2012 (но также и Microsoft SQL Server 2018).Я создал пользователя с именем WebClient1 в SQL Server Management Studio (Microsoft SQL Server 2012).Я не могу использовать все последовательности Microsoft SQL Server из-за ошибки Invalid object name <sequence>.

Я создал следующую последовательность:

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.

Тип аутентификации пользователя - «Аутентификация SQL Server».Пользователь имеет роль «публичный».Пожалуйста помоги.Заранее большое спасибо.

Я попытался выполнить следующую команду SQL, но это не решило проблему:

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

Ожидаемые результаты состоят из следующего значенияпоследовательность.

1 Ответ

0 голосов
/ 10 июля 2019

Это не FROM, это FOR. NEXT VALUE не возвращает набор данных (это не функция табличного значения), он возвращает скалярное значение, поэтому вы указываете в нем SELECT, а не FROM:

SELECT NEXT VALUE FOR dbo.Test_Seq AS id_val;

дб <> скрипка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...