Obtenir la valeur actuelle de SQL Server SÉQUENCE
Je veux obtenir la valeur actuelle de ma séquence - la même valeur que celle qui est affichée dans la fenêtre de propriétés de la séquence de SQL Server Management Studio
Ma séquence est créée avec cette déclaration:
CREATE SEQUENCE [OrderNumberSequence]
as int
START WITH 4000
INCREMENT BY 1
MINVALUE 0
NO MAXVALUE
NO CACHE;
GO
J'ai essayé cette SQL à partir de MSDN – mais le résultat est que mon chiffre est en hausse avec 5 à chaque fois que j'exécute la requête
DECLARE
@FirstSeqNum sql_variant
, @LastSeqNum sql_variant
, @CycleCount int
, @SeqIncr sql_variant
, @SeqMinVal sql_variant
, @SeqMaxVal sql_variant ;
EXEC sys.sp_sequence_get_range
@sequence_name = N'[OrderNumberSequence]'
, @range_size = 5
, @range_first_value = @FirstSeqNum OUTPUT
, @range_last_value = @LastSeqNum OUTPUT
, @range_cycle_count = @CycleCount OUTPUT
, @sequence_increment = @SeqIncr OUTPUT
, @sequence_min_value = @SeqMinVal OUTPUT
, @sequence_max_value = @SeqMaxVal OUTPUT ;
-- The following statement returns the output values
SELECT
@FirstSeqNum AS FirstVal
, @LastSeqNum AS LastVal
, @CycleCount AS CycleCount
, @SeqIncr AS SeqIncrement
, @SeqMinVal AS MinSeq
, @SeqMaxVal AS MaxSeq ;
Est-il une manière que je peux obtenir la valeur sans changer de numéro?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez sélectionner le
current_value
desys.sequences
:DÉMO
current_value
dans une variable que j'ai créé avecDECLARE
seulement pour découvrircurrent_value
est de typesql_variant
. Qui est venu comme une surprise. Je devrait/besoin d'unint
oubigint
et a dû utiliserCONVERT
.