Eu tenho o seguinte
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
Quero inserir novos registros no MyTable e definir o ID para o próximo valor da sequência. Como eu posso fazer isso? Um gatilho, talvez, ou existe alguma outra maneira? Quão?
Como estou usando o SQL Server 2012, não quero usar o Identity por causa do bug do gap .
sql-server
sequence
BrunoLM
fonte
fonte
cache
neste caso? No link de conexão, a Microsoft nos diz para usarno cache
.Para usar a
SEQUENCE
em umaINSERT
declaração, você pode tentar o seguinte:NEXT VALUE FOR dbo.MyTableID
é a sintaxe para obter o próximo número de aSEQUENCE
.fonte
Você pode usar uma sequência para várias tabelas, conforme demonstrado no seguinte exemplo:
Resultado:
sqlfiddle
fonte