Последовательность SQL Server 2012

Я создаю таблицу и последовательность, чтобы заменить идентификатор в таблице, использующей SQL Server 2012 Express, но я получаю эту ошибку, пока я пытался вставить данные в таблицу

Msg 11719, уровень 15, состояние 1, строка 2
Функция NEXT VALUE FOR не допускается в контрольных ограничениях, объектах по умолчанию, вычисленных столбцах, представлениях, пользовательских функциях, пользовательских агрегатах, пользовательских типах таблиц, подзапросах, общих табличных выражениях или производных таблицах.

Код T-SQL:

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

Это моя таблица:

 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, например:

 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

Ваш синтаксис вставки кажется неправильным. Вы пытаетесь использовать SELECT внутри секции VALUES вашего запроса. Если вы хотите использовать SELECT вы будете использовать:

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

См. SQL Fiddle with Demo

Я изменил синтаксис с INSERT INTO VALUES на INSERT INTO ... SELECT . Я использовал это, потому что вы выбираете следующее значение последовательности.

Однако, если вы хотите использовать INSERT INTO.. VALUES , вам нужно будет удалить SELECT из запроса:

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

См. SQL Fiddle with Demo

Оба из них будут INSERT запись в таблицу.

Попробуй это:


-С таблицей

создать последовательность idsequence с 1 приращением на 3

 create table Products_ext ( id int, Name varchar(50) ); INSERT dbo.Products_ext (Id, Name) VALUES (NEXT VALUE FOR dbo.idsequence, 'ProductItem'); select * from Products_ext; /* If you run the above statement two types, you will get the following:- 1 ProductItem 4 ProductItem */ drop table Products_ext; drop sequence idsequence; ------------------------------ 
  • Операторы * = и = * sql
  • Скрытие баз данных для входа в Microsoft Sql Server 2008R2 и выше
  • Полнотекстовый поиск не работает, если включено стоп-слово, даже если стоп-лист пуст
  • SQL Server - та же таблица в нескольких схемах
  • Исключение основного ключа SQL
  • как вставить значение в таблицу типов данных изображения
  • Функция SQL не возвращает результатов, но содержимое функции возвращает результаты
  • Есть ли способ генерировать миллионные адреса mac более эффективно?
  • Могу ли я разработать SQL Server Express для последующего развертывания на полном SQL Server?
  • Поиск SQL Query Date с использованием Между
  • Не удалось подключиться к SQL Server в Hydro GeoAnalyst
  • Interesting Posts

    Стратегия индексирования SQL Server

    Как я могу вставить данные базы данных SQL Server из онлайн-CSV?

    Заявление TSQL для перемещения суффикса имени (Jr, Sr, IV и т. Д.) В другое поле

    Может ли Directory.Move сбой, потому что я просматриваю папку?

    Добавить специальное ограничение, чтобы избежать дублирования строк с этим условием?

    Как я могу найти первое время начала в различных последовательностях событий?

    Отображение SQL-функций в Entity Framework с постоянными параметрами

    Хранимые процедуры и ОПТИМИЗАЦИЯ ДЛЯ НЕИЗВЕСТНОГО

    SQL Management Studio 2008 – имя сервера на вкладках Редактор запросов … куда они пошли?

    Оператор TASE SQL CASE WHEN не работает с

    Как удалить определенные строки в зависимости от группы?

    Добавить отсутствующие строки в набор результатов

    Как получить общее количество для разных значений в столбце

    Динамическая отправка электронной почты нескольким получателям с помощью сообщения sp_send_dbmail

    Агрегированные функции SQL и Group By

    Давайте будем гением компьютера.