我曾尝试使用下面的查询创建SQL Server 2008中的序列创建序列,不能在SQL Server 2008中
CREATE SEQUENCE serial START 100
我得到了下面的语法错误,
消息102 ,Level 15,State 1,Line 1
'SEQUENCE'附近语法不正确。
如何在SQL Server 2008中创建序列?
我曾尝试使用下面的查询创建SQL Server 2008中的序列创建序列,不能在SQL Server 2008中
CREATE SEQUENCE serial START 100
我得到了下面的语法错误,
消息102 ,Level 15,State 1,Line 1
'SEQUENCE'附近语法不正确。
如何在SQL Server 2008中创建序列?
利用IDENTITY
列将完成您的任务。
获得MSDN上的全部细节:IDENTITY
你不能做到这一点。
SQL Server 2008不具有SEQUENCE
的概念 - 这是a new feature in SQL Server 2012(MSDN documentation here)。
通常情况下,你要为你的表中的“自动增长”列 - 在这种情况下,使用IDENTITY
列属性改为:
CREATE TABLE dbo.YourTable
(TableID INT IDENTITY,
.....
marc_s是如何写的,SQL Server 2008不具备序列呢。 但是我们可以使用一些技巧来模仿序列行为。有时我们需要为某个表生成标识符而不插入任何数据。 或为不同的表格生成ID。 在这种情况下,我使用这种结构。
创建一个表:
create table IdSequence (id int identity(1,1))
然后我用这个脚本生成编号:
begin tran
insert into IdSequence output inserted.id default values
rollback tran
在我的应用程序,它看起来像:
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;
}