Процедура FINTAG_INSTEADOFINSERTTRIGGER, строка 41. Невозможно вставить явное значение в столбец метки времени

Я столкнулся со следующей ошибкой при попытке восстановить UAT.bacpac 10.0.40 в среде разработки с версией 10.0.38:

Процедура FINTAG_INSTEADOFINSERTTRIGGER, строка 41. Невозможно вставить явное значение в столбец метки времени.

Кто-нибудь еще сталкивался с этой проблемой и нашел решение службы поддержки Microsoft?

Error SQL72014: Core Microsoft SqlClient Data Provider: Msg 273, Level 16, State 1, Procedure FINTAG_INSTEADOFINSERTTRIGGER, Line 41 Cannot insert an 
explicit value into a timestamp column. Use INSERT with a column list to exclude the timestamp column, or insert a DEFAULT into the timestamp column.
Error SQL72045: Script execution error.  The executed script:
CREATE TRIGGER [dbo].[FINTAG_INSTEADOFINSERTTRIGGER]
    ON [dbo].FinTag
    INSTEAD OF INSERT
    AS BEGIN
           DECLARE @ErrorLevel AS INT = 0;
           DECLARE @Delimiter AS CHAR;
           DECLARE @IsDelimiterInValues AS BIT;
           DECLARE @ErrorDelimiter AS CHAR = '!';
           SELECT @Delimiter = CASE (SELECT DELIMITER
                                     FROM   FINTAGPARAMETERS
                                     WHERE  PARTITION = (SELECT PARTITION
                                                         FROM   INSERTED)) WHEN 1 THEN '|' WHEN 2 THEN '.' WHEN 3 THEN '_' WHEN 4 THEN '-' WHEN 5 THEN 
'~' ELSE @ErrorDelimiter END;
           SELECT @IsDelimiterInValues = CASE WHEN CHARINDEX(@Delimiter, concat(TAG01, TAG02, TAG03, TAG04, TAG05, TAG06, TAG07, TAG08, TAG09, TAG10, 
TAG11, TAG12, TAG13, TAG14, TAG15, TAG16, TAG17, TAG18, TAG19, TAG20)) > 0 THEN 1 ELSE 0 END
           FROM   inserted;
           DECLARE @Hash AS NVARCHAR (64);
           DECLARE @DisplayValue AS N
Time elapsed 1:14:17.66

Эта ошибка произошла примерно через час после запуска скрипта.

C:\sqlpackage-win-x64-en-162.3.566.1> ./SqlPackage.exe /a:import /sf:C:\Backup\dbbackup.bacpac /tsn:localhost /tdn:AxDB2 /ttsc:true /p:CommandTimeout=1200

Я искал в Интернете решения, но ни одно из них не сработало. Я также безуспешно обновил локальную среду до последней версии.

Кроме того... код триггера ошибочен: он предполагает, что в виртуальной таблице inserted всегда будет только одна строка. Триггеры SQL Server действуют на наборы строк, поэтому виртуальные таблицы inserted и deleted могут содержать ноль, одну или несколько строк.

AlwaysLearning 08.07.2024 10:07

@AlwaysLearning, вероятно, это какой-то внутренний динамический триггер Microsoft, так что, надеюсь, они знают, что делают.

siggemannen 08.07.2024 11:42

Кроме того, это еще не все определение триггера. Обратите внимание, что оно заканчивается на DECLARE @DisplayValue AS N, а оператора INSERT нет?

Ben Thul 08.07.2024 19:40
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
104
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я решил эту проблему, выполнив следующие шаги:

  1. Загрузите последнюю версию двоичного файла из LCS и обновите его на локальной виртуальной машине.
  2. Следуйте инструкциям по этой ссылке. эта ссылка
  • Перейдите в «Управление функциями» и включите функцию «Финансовые теги».
  • Перейдите на портал обслуживания данных и нажмите /Проверить наличие обновлений/.
  • Запустите задание /Развертывание триггеров таблицы финансовых тегов/ по обслуживанию данных.

Когда задание завершится успешно, вы можете взять новую базу данных экспорта и затем попытаться загрузить ее в среду разработки.

Другие вопросы по теме