Существует ли хранимая процедура для обновления логического значения в одной таблице, когда вставка происходит в другой таблице? - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть две таблицы: PatientMedicalHistory и PatientMedicineTable.История болезни пациента имеет следующие поля -

PatientMedicalHistoryID Primary Key for PatientMedical History Table
Medications Boolean for existence of prior medications
Allergies   Boolean for existence of allergies
Diseases    Boolean for existence of prior diseases
FamilyHistory   Boolean for existence of hereditary conditions

История таблицы лекарств пациента содержит следующие поля -

PatientMedicalHistoryID Primary, Foreign Key for Patient Table
MedicineID  Primary, Foreign Key for Medicine Table

Существует ли способ создания триггера для обновления булевых лекарствзначение, когда запись вставляется в таблицу лекарств для пациентов?

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

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

-- recreating the trigger to be sure
DROP TRIGGER [dbo].[YourTrigger] 
GO


CREATE TRIGGER [dbo].[YourTrigger]
ON [dbo].[PatientMedicineTable]
AFTER INSERT
AS 
BEGIN   
    SET NOCOUNT ON;

    UPDATE h
    SET  h.[Medications] = 1
    FROM Inserted i, [dbo].[PatientMedicalHistory] h
    WHERE h.PatientMedicalHistoryID = i.PatientMedicalHistoryID
END
GO

Обратите внимание, что AFAIK вы обрабатываете логические значения в SQL Server с помощью установки битового поля через 1 или 0, но вам может потребоваться другая опция.

0 голосов
/ 06 апреля 2019

Триггер AFTER INSERT должен быть тем, что вы ищете.Ссылка ниже является руководством по его созданию.http://www.sqlservertutorial.net/sql-server-triggers/sql-server-create-trigger/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...