Мне нужно использовать часы на моем SQL Server, чтобы записать время в одну из моих таблиц, поэтому я подумал, что просто использую GETDATE ().Проблема в том, что я получаю ошибку из-за моего триггера INSTEAD OF.Есть ли способ установить один столбец в GETDATE (), если другой столбец является столбцом идентификаторов?
Это Linq-to-SQL:
internal void LogProcessPoint(WorkflowCreated workflowCreated, int processCode)
{
ProcessLoggingRecord processLoggingRecord = new ProcessLoggingRecord()
{
ProcessCode = processCode,
SubId = workflowCreated.SubId,
EventTime = DateTime.Now // I don't care what this is. SQL Server will use GETDATE() instead.
};
this.Database.Add<ProcessLoggingRecord>(processLoggingRecord);
}
Это таблица.EventTime - это то, что я хочу иметь как GETDATE ().Я не хочу, чтобы столбец был нулевым.
И вот триггер:
ALTER TRIGGER [Master].[ProcessLoggingEventTimeTrigger]
ON [Master].[ProcessLogging]
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
SET IDENTITY_INSERT [Master].[ProcessLogging] ON;
INSERT INTO ProcessLogging (ProcessLoggingId, ProcessCode, SubId, EventTime, LastModifiedUser)
SELECT ProcessLoggingId, ProcessCode, SubId, GETDATE(), LastModifiedUser FROM inserted
SET IDENTITY_INSERT [Master].[ProcessLogging] OFF;
END
Не вдаваясь во все варианты, я 'При попытке последней попытки возникла следующая ошибка:
Ошибка автосинхронизации члена InvalidOperationException.Чтобы члены были автоматически синхронизированы после вставки, тип должен иметь автоматически сгенерированный идентификатор или ключ, который не изменяется базой данных после вставки.
Я мог бы удалить EventTime из своей сущности, но я неЯ не хочу этого делать.Однако если этого не произошло, то во время INSERT будет использоваться значение NULL, и будет использоваться GETDATE ().
Есть ли способ, которым я могу просто использовать GETDATE () в столбце EventTime для INSERT?
Примечание: я не хочу использовать C # DateTime.Now по двум причинам: 1. Одна из этих вставок генерируется самим SQL Server (из другой хранимой процедуры) 2. Время может быть разным на разных машинах, и я 'Мне бы хотелось точно знать, как быстро происходят мои процессы.