Наша оригинальная база данных назвала имена первых, средних, последних для имен людей. Теперь мы создали поля с именами имя, отчество и фамилия. Пока мы проходим этот переход, я создал триггер для копирования данных с первого на имя, от среднего до среднего и от последнего к фамилии в любое время, когда предыдущие поля получают обновление или вставку. Проблема заключается в том, что когда мы пакетно загружаем файлы в нашу базу данных, все замедляется и может вызывать тайм-аут других событий.
Ниже мой код:
USE [Database]
GO
/****** Object: Trigger [dbo].[CopyFirstName] Script Date: 07/15/2009 08:35:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[CopyFirstName]
ON [dbo].[Patients]
AFTER INSERT,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF UPDATE([First]) BEGIN
SET NOCOUNT ON;
declare @ChangedField nvarchar(50);
select @ChangedField = [First] from inserted
update dbo.Patients set FirstName = @ChangedField where [First] = @ChangedField
END
end
Можно ли это улучшить или сделать другим способом?