Получить текущее значение последовательности - PullRequest
0 голосов
/ 04 мая 2019

У меня есть созданная последовательность на моем БД-сервере, используемая для сгенерированных регистров и детализация каждого из них.Я должен создать простой документ этой детали в момент генерации, поэтому мне нужно получить текущее значение последовательности (не NEXT)

Я создаю запрос для получения желаемых данных, но мне нужно (как я уже сказал) получить текущее значение последовательности

- это моя последовательность:

CREATE SEQUENCE [dbo].[GuiaRemisionID] 
AS [int]
START WITH 1000
INCREMENT BY 1
MINVALUE -2147483648
MAXVALUE 2147483647
CACHE 
GO

- и это мой SP для получения данных

CREATE PROCEDURE [dbo].[CAJAS_CONS_GUIAREMISION]
AS 
BEGIN 
    DECLARE @ID_GUIAREMISION INT 
    select @ID_GUIAREMISION = current_value FROM sys.sequences WHERE name = 'GuiaRemisionId' ;
    SELECT 
    T1.ID_GUIAREMISION, T1.CLIENTE_CODIGO, T1.USUARIO, T1.FECHA_GUIA, T1.TIPO,
    T2.CAJA_CODIGO, T2.CAJA_NUMERO, T2.ITEM,  
    T2.UBICACION_COORD1,
    T2.UBICACION_COORD2, T2.UBICACION_COORD3, T2.UBICACION_COORD4,
    T2.UBICACION_COORD5, T2.UBICACION_COORD6, T2.DEPARTAMENTO
    FROM GUIAS_REMISION T1, GUIAS_REMISION_DETALLE T2
    WHERE T1.ID_GUIAREMISION = T2.ID_GUIAREMISION
    AND T1.ID_GUIAREMISION = @ID_GUIAREMISION

END

Но моя проблема заключается в следующем: «Неявное преобразование типа данных sql_variant в int недопустимо»

Как получить текущее значение моей последовательности?Должен ли я использовать: выбрать max (id_guiaRemision) из моей таблицы?(не кажется эффективным) Пожалуйста, я надеюсь, что любой может помочь мне.

С наилучшими пожеланиями

1 Ответ

0 голосов
/ 04 мая 2019

Не могли бы вы попробовать это?

SELECT
Cast(ISNULL(seq.current_value,N'''') as INT) AS [Current Value]
FROM
sys.sequences AS seq where seq.name = 'GuiaRemisionID'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...