J'ai le suivant
CREATE TABLE [MyTable]
(
[ID] [bigint] PRIMARY KEY NOT NULL,
[Title] [nvarchar](64) NOT NULL
)
CREATE SEQUENCE MyTableID
START WITH 1
INCREMENT BY 1
NO CACHE
;
GO
Je veux insérer de nouveaux enregistrements sur MyTable et définir l'ID à la valeur suivante de la séquence. Comment puis-je le faire? Un déclencheur peut-être, ou y a-t-il un autre moyen? Comment?
Étant donné que j'utilise SQL Server 2012, je ne souhaite pas utiliser Identity en raison du bogue d'écart .
sql-server
sequence
BrunoLM
la source
la source
cache
dans ce cas? Sur le lien de connexion, Microsoft nous dit d'utiliserno cache
.Pour utiliser un
SEQUENCE
dans uneINSERT
instruction, vous pouvez essayer ceci:NEXT VALUE FOR dbo.MyTableID
est la syntaxe pour obtenir le nombre suivant à partir de aSEQUENCE
.la source
Vous pouvez utiliser une séquence pour plusieurs tables, comme le montre l'exemple suivant:
Production:
sqlfiddle
la source