Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка с триггерами  [new]
maksim.yugai
Member

Откуда:
Сообщений: 110
Добрый день, друзья.

Прошу помочь решить проблему с триггером.

Есть таблица [dbo].[Activity] пытаюсь в нее занести данные. SQL-запрос исполняется. Данные не заносятся. Через профилировщик отображается ошибка: "InvalidObjectStateException: Невозможно получить значение колонки Id, так как она не была загружена". Причем, ругается профилировщик на таблицу [dbo].[SysProcessElementLog]. Т.е., я так понимаю, что после исполнения запроса исполняется еще куча запросов и в одном из них при занесении данных в таблицу SysProcessElementLog не хватает Id. На таблице [dbo].[Activity] есть триггер TRAccountID. Возможно это как-то связано с предыдущим параметром @OwnerId=NULL

exec sp_executesql N'INSERT INTO [dbo].[SysProcessElementLog]([Id], [CreatedOn], [CreatedById], [ModifiedOn], [ModifiedById], [StartDate], [SysProcessId], [Caption], [StatusId], [Type], [SchemaElementUId], 
[OwnerId], [ErrorDescription])	
VALUES(@Id, @CreatedOn, @CreatedById, @ModifiedOn, @ModifiedById, @StartDate, @SysProcessId, @Caption, @StatusId, @Type, @SchemaElementUId, @OwnerId, @ErrorDescription)',
N'@Id uniqueidentifier,@CreatedOn datetime2(7),@CreatedById uniqueidentifier,@ModifiedOn datetime2(7),@ModifiedById uniqueidentifier,@StartDate datetime2(7),@SysProcessId uniqueidentifier,@Caption nvarchar(4000),@StatusId uniqueidentifier,
@Type nvarchar(23),@SchemaElementUId uniqueidentifier,@OwnerId uniqueidentifier,@ErrorDescription nvarchar(732)',
@Id='5FAC3E7E-2FCF-4C3E-B45A-B120A262C0CC',@CreatedOn='2015-11-23 06:27:49.7205062',@CreatedById='DFF32EE3-2F83-4BA9-9619-3377CE857715',@ModifiedOn='2015-11-23 06:27:49.7205062',
@ModifiedById='DFF32EE3-2F83-4BA9-9619-3377CE857715',@StartDate='2015-11-23 06:27:49.7205062',@SysProcessId='6655A194-9371-49E4-85D9-3E010200D0F3',@Caption=N'',@StatusId='F942C08D-B6E2-DF11-971B-001D60E938C6',
@Type=N'ProcessSchemaScriptTask',@SchemaElementUId='1EDB1620-1236-4A0A-91EF-2612AE3A0993',@OwnerId=NULL,
@ErrorDescription=N'Common.InvalidObjectStateException: Невозможно получить значение колонки Id, так как она не была загружена
   в Core.Entities.EntityColumnValue.get_Value()


Тут есть два варианта – либо Id из [dbo].[SysAdminUnit], либо Id из [dbo].[MailboxSyncSettings]. Скорее всего система не понимает, кто запустил данный процесс.

Как вообще посмотреть этот триггер? Что он делает? Его нет в разделе Программирование --- Триггеры.

Возможно предоставил недостаточную информацию или запутанно.

Прошу помочь в вопросе.
23 ноя 15, 15:29    [18460142]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с триггерами  [new]
Glory
Member

Откуда:
Сообщений: 104751
maksim.yugai
Через профилировщик отображается ошибка: "InvalidObjectStateException: Невозможно получить значение колонки Id, так как она не была загружена".

В TSQL нет таких ошибок. так что не надо придумывать про Profile
Это текст того, что вы передали через
@ErrorDescription=N'Common.InvalidObjectStateException: Невозможно получить значение колонки Id, так как она не была загружена
в Core.Entities.EntityColumnValue.get_Value()
23 ноя 15, 15:38    [18460223]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с триггерами  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
maksim.yugai,

это ошибка клиента, а не сервера. Он свою ошибку пытается записать на сервер в базу.
23 ноя 15, 15:47    [18460295]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с триггерами  [new]
maksim.yugai
Member

Откуда:
Сообщений: 110
Glory,

Вообще-т, я исполняю sp. Внутри вот этот запрос:

use [MSSQL_RUS]
go

CREATE PROCEDURE dbo.sp_addEvent 
	@title nvarchar(max),
	@contactid nvarchar(max),
	@leadid nvarchar(max)
AS insert into [dbo].[Activity] ([Id],[CreatedOn],[CreatedById]
	,[ModifiedOn],[ModifiedById],[Title],[StartDate]
	,[DueDate],[PriorityId],[AuthorId]
	,[RemindToAuthor],[RemindToAuthorDate],[OwnerId],[RemindToOwner],[RemindToOwnerDate],[TypeId]
	,[ShowInScheduler],[StatusId],[ResultId],[DetailedResult],[TimeZoneId],[AccountId],[ContactId]
	,[DocumentId],[Recepient],[CopyRecepient],[BlindCopyRecepient],[Body],[Notes]
	,[Color],[SendDate],[EmailSendStatusId],[ErrorOnSend],[DurationInMinutes],[DurationInMnutesAndHours],[ActivityCategoryId],[AllowedResult],[CreatedByInvCRM]
	
	,[MessageTypeId],[Sender],[ProcessListeners],[IsHtmlBody],[HtmlBody],[MailHash]
	,[ProcessElementId],[GlobalActivityID],[UserEmailAddress],[InvoiceId],[LeadId],[OpportunityId],[ProjectId]
	,[OrderId],[FullProjectName],[Usrmeetingplace],[Usrtaskdescription])

	values(newid(), getdate(), '972C45AE-3B22-42E3-8999-B32E13A951F4',
		getdate(), '972C45AE-3B22-42E3-8999-B32E13A951F4', @title, getdate(),
		GETDATE(), 'AB96FA02-7FE6-DF11-971B-001D60E938C6', '972C45AE-3B22-42E3-8999-B32E13A951F4',
		0, null, '1977FDF5-E511-4895-B332-33BDAF65F7CE', 1, null, 'E1831DEC-CFC0-DF11-B00F-001D60E938C6',
		1, '384D4B84-58E6-DF11-971B-001D60E938C6', null, '', null, 'E308B781-3C5B-4ECB-89EF-5C1ED4DA488E', coalesce(@contactid,null), --contactid
		null, '', '', '', '', '', 
		'#405f97', null, null, '', '60', '0 ч. 30 мин.', 'E52BD583-7825-E011-8165-00155D043204', '', 0,
		
		null, '', 0, 0, '', '', 
		null, '', '', null, coalesce(@leadid,null), null, null, --leadid
		null, '', '', @title)
23 ноя 15, 16:20    [18460513]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с триггерами  [new]
Glory
Member

Откуда:
Сообщений: 104751
maksim.yugai
Вообще-т, я исполняю sp

И что ? Профайлер теперь должен начать показывать несуществующие серверные ошибки ?

maksim.yugai
Внутри вот этот запрос:

А в первом сообщении тогда что ?
23 ноя 15, 16:26    [18460552]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с триггерами  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
maksim.yugai
Скорее всего система не понимает, кто запустил данный процесс.
Жесть :-)

Это по моему вы не понимаете, что вы там запускаете, и вообще что происходит :-)
maksim.yugai
Есть таблица [dbo].[Activity] пытаюсь в нее занести данные. SQL-запрос исполняется. Данные не заносятся.
Ну и покажите, что происходит.

Покажите запрос, покажите результат. Начните с простого.

Не понимаете, что срабатывает - настройте профайлер на ваш spid, и на вход внутрь SP. Тогда у вас будет полный стек вызовов, всё-всё-всё.
23 ноя 15, 17:22    [18460920]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с триггерами  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
На первой картинке ошибка Entity Framework, видимо. Оно недополучило с сервера столбец Id и вызвало исключение.
23 ноя 15, 17:45    [18461025]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить