2011-08-30 58 views
5

He tratado de crear una secuencia de SQL Server 2008 utilizando la siguiente consulta,No se puede crear la secuencia de SQL Server 2008

CREATE SEQUENCE serial START 100 

tengo el siguiente error de sintaxis,

Msg 102 , Nivel 15, Estado 1, Línea 1
Sintaxis incorrecta cerca de 'SECUENCIA'.

Cómo crear una secuencia en SQL Server 2008?

Respuesta

1

Hacer uso de la columna IDENTITY hará su tarea.

obtener todos los detalles en MSDN: IDENTITY

11

que simplemente no puede hacer esto.

SQL Server 2008 no tiene el concepto de SEQUENCE - esto es a new feature in SQL Server 2012(MSDN documentation here).

Normalmente, se desea crear una columna de "aumentar la auto-" para su mesa - en ese caso, utilice el atributo IDENTITY la columna en su lugar:

CREATE TABLE dbo.YourTable 
(TableID INT IDENTITY, 
..... 
0

Cómo se escribió marc_s, SQL Server 2008 no tiene secuencias aún. Pero podemos usar algún truco para imitar el comportamiento de las secuencias. Algunas veces necesitamos generar un identificador para alguna tabla sin insertar ningún dato. O genere ID para diferentes tablas. En tal situación, uso esta estructura.

Crear una tabla:

create table IdSequence (id int identity(1,1)) 

Entonces utilizar este script para generar Id:

begin tran 
insert into IdSequence output inserted.id default values 
rollback tran 

En mi aplicación que parece:

public Int32 GetNextId() 
    { 
     Int32 id = 0; 
     using (var transaction = Session.BeginTransaction()) 
     { 
      id = Session.CreateSQLQuery("insert IdSequence output inserted.id default values").UniqueResult<Int32>(); 
      transaction.Rollback(); 
     } 

     return id; 
    } 
Cuestiones relacionadas