我创建一个表和序列以替换表中的标识,我使用SQL Server 2012 Express,但在尝试向表中插入数据时收到此错误



T-SQL代码:

insert into Job_Update_Log(log_id, update_reason, jobid)
values((select next value for Job_Log_Update_SEQ),'grammer fixing',39);

这是我的 table :
create table Job_Update_Log
(
   log_id int primary key  ,
   update_reason nvarchar(100) ,
   update_date date default getdate(),
   jobid bigint not null,
   foreign key(jobid) references jobslist(jobid)
);

这是我的顺序:
CREATE SEQUENCE [dbo].[Job_Log_Update_SEQ]
 AS [int]
 START WITH 1
 INCREMENT BY 1
 NO CACHE
GO

最佳答案

只需摆脱VALUES部分中的subselect,就像这样:

insert into Job_Update_Log(log_id,update_reason,jobid)
        values (next value for Job_Log_Update_SEQ,'grammer fixing',39);

引用:http://msdn.microsoft.com/en-us/library/hh272694%28v=vs.103%29.aspx

关于SQL Server 2012序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12745037/

10-13 01:53