Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 trigger updating for all columns

Author  Topic 

rajasekhar857
Constraint Violating Yak Guru

396 Posts

Posted - 2009-08-13 : 02:59:26
hi i have a trigger which needs to update on onlu two columns but it is updating urrespective of all columns please check for my condition and send me the modified ones.

CREATE TRIGGER TR_Update_EMRAppointmentDetails
ON dbo.EMRAppointmentDetails
FOR UPDATE
AS
if not ((substring(columns_updated(),1,8) & 255) = substring(columns_updated(),1,8) and (substring(columns_updated(),2,3) | 0) = 4)
BEGIN
INSERT EMRAppointmentDetailsHistory
SELECT
APPOINTMENT_ID,PATIENT_ID,REFERED_BY,SPECIALTY_ID,REASON,CONSULTANT_ID,
APPOINTMENT_TYPE_ID,APPOINTMENT_DATE,APPOINTMENT_TIME,FRONTDESK_COMMENTS,
APPOINTMENT_STATUS_ID,CREATED_DATE,USER_LOGIN,VISIT_TYPE_ID,APPOINTMENT_LOCATION_ID,
HEALTH_PKG_ID,DISP_APPOINTMENT_ID,SRV_ITEM_ID,FULFILLED_APPOINTMENT_ID,
FULFILLED_LOCATION_ID,FULFILLED_LOCATION,IS_LAB_APMT,TP_PKG_ID,TP_ITEM_ID,LAB_TEST_ID,
LAB_PROFILE_ID,LAST_UPDATED_DATE,LAST_UPDATED_USER,IS_TP_APPOINTMENT,BILL_NUMBER
FROM Deleted
END
GO


the two columns are APPOINTMENT_STATUS_ID and APPOINTMENT_DATE

SwePeso
Patron Saint of Lost Yaks

30421 Posts

Posted - 2009-08-13 : 03:03:17
[code]CREATE TRIGGER dbo.TR_Update_EMRAppointmentDetails
ON dbo.EMRAppointmentDetails
FOR UPDATE
AS

IF UPDATE(APPOINTMENT_STATUS_ID) OR UPDATE(APPOINTMENT_DATE)
INSERT EMRAppointmentDetailsHistory
SELECT APPOINTMENT_ID,
PATIENT_ID,
REFERED_BY,
SPECIALTY_ID,
REASON,
CONSULTANT_ID,
APPOINTMENT_TYPE_ID,
APPOINTMENT_DATE,
APPOINTMENT_TIME,
FRONTDESK_COMMENTS,
APPOINTMENT_STATUS_ID,
CREATED_DATE,
USER_LOGIN,
VISIT_TYPE_ID,
APPOINTMENT_LOCATION_ID,
HEALTH_PKG_ID,
DISP_APPOINTMENT_ID,
SRV_ITEM_ID,
FULFILLED_APPOINTMENT_ID,
FULFILLED_LOCATION_ID,
FULFILLED_LOCATION,
IS_LAB_APMT,
TP_PKG_ID,
TP_ITEM_ID,
LAB_TEST_ID,
LAB_PROFILE_ID,
LAST_UPDATED_DATE,
LAST_UPDATED_USER,
IS_TP_APPOINTMENT,
BILL_NUMBER
FROM Deleted[/code]


N 56°04'39.26"
E 12°55'05.63"
Go to Top of Page

rajasekhar857
Constraint Violating Yak Guru

396 Posts

Posted - 2009-08-13 : 03:07:34
thanks peso
Go to Top of Page

rajasekhar857
Constraint Violating Yak Guru

396 Posts

Posted - 2009-08-13 : 03:09:19
i am having one more doubt actually this is oracle query and i ahve to select queries with union all statements with exists and not exists conditions now i want to make it in asingle query using those conditions.

SELECT ET.EMR_TRANSACTION_ID, ET.TASK_ID,'ENCOUNTER' AS TASK_NAME, TO_CHAR(ET.NODE_DEFINITION_ID) AS NODE_DEFINITION_ID, ET.ID_VALUE, TO_CHAR(ET.FLOW_ID) AS FLOW_ID,
TO_CHAR(EA.APPOINTMENT_DATE,'DD/MM/YYYY') AS APPOINTMENT_DATE, TO_CHAR(EA.APPOINTMENT_TIME,'HH:MI:SS AM') AS APPOINTMENT_TIME,
TO_CHAR(EA.CREATED_DATE,'DD/MM/YYYY') AS CREATED_DATE, TO_CHAR(EA.APPOINTMENT_ID) AS APPOINTMENT_ID,EA.REASON || ' ' || EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS, EAL.APPOINTMENT_STATUS,
EPM.PATIENT_FIRSTNAME, EPM.PATIENT_LASTNAME, EPM.PATIENT_DOB, EPM.PATIENT_HOMEPHONE, EPM.PATIENT_ID, EPM.PATIENT_TYPE,EPM.PATIENT_GENDER,EPM.RACE_ETHNICITY_ID,EPM.MARITAL_STATUS,
'' AS NAME, ET.USER_LOGIN AS CONSULTANT_ID, ECD.CONSULTANT_NAME, ET.ROLE_NAME, EA.APPOINTMENT_LOCATION_ID AS LOCATION_ID, EPM.REGISTER_ID AS REGISTER_ID, NVL(IS_EXPRESS,0) AS IS_EXPRESS, 0 AS LAB_REQUEST_ID, 0 AS SPECIMEN_ID, 1 AS IS_ACTIVE
FROM EMRAppointmentDetailsHistory EA
LEFT JOIN EMRTransactions ET ON ET.ID_VALUE = EA.APPOINTMENT_ID
LEFT JOIN EMRPatientsMaster EPM ON EA.PATIENT_ID = EPM.PATIENT_ID
LEFT JOIN EMRAppointmentStatusLkup EAL ON EAL.APPOINTMENT_STATUS_ID = EA.APPOINTMENT_ID
LEFT JOIN EMRConsultantDetails ECD ON ECD.CONSULTANT_ID = EA.CONSULTANT_ID
WHERE ET.TASK_ID = 9 AND EA.APPOINTMENT_STATUS_ID = 2
AND EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1
WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE)
UNION ALL
SELECT ET.EMR_TRANSACTION_ID, ET.TASK_ID,'ENCOUNTER' AS TASK_NAME, TO_CHAR(ET.NODE_DEFINITION_ID) AS NODE_DEFINITION_ID, ET.ID_VALUE, TO_CHAR(ET.FLOW_ID) AS FLOW_ID,
TO_CHAR(EA.APPOINTMENT_DATE,'DD/MM/YYYY') AS APPOINTMENT_DATE, TO_CHAR(EA.APPOINTMENT_TIME,'HH:MI:SS AM') AS APPOINTMENT_TIME,
TO_CHAR(EA.CREATED_DATE,'DD/MM/YYYY') AS CREATED_DATE, TO_CHAR(EA.APPOINTMENT_ID) AS APPOINTMENT_ID,EA.REASON || ' ' || EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS, EAL.APPOINTMENT_STATUS,
EPM.PATIENT_FIRSTNAME, EPM.PATIENT_LASTNAME, EPM.PATIENT_DOB, EPM.PATIENT_HOMEPHONE, EPM.PATIENT_ID, EPM.PATIENT_TYPE,EPM.PATIENT_GENDER,EPM.RACE_ETHNICITY_ID,EPM.MARITAL_STATUS,
'' AS NAME, ET.USER_LOGIN AS CONSULTANT_ID, ECD.CONSULTANT_NAME, ET.ROLE_NAME, EA.APPOINTMENT_LOCATION_ID AS LOCATION_ID, EPM.REGISTER_ID AS REGISTER_ID, NVL(IS_EXPRESS,0) AS IS_EXPRESS, 0 AS LAB_REQUEST_ID, 0 AS SPECIMEN_ID, 0 AS IS_ACTIVE
FROM EMRAppointmentDetailsHistory EA
LEFT JOIN EMRTransactions ET ON ET.ID_VALUE = EA.APPOINTMENT_ID
LEFT JOIN EMRPatientsMaster EPM ON EA.PATIENT_ID = EPM.PATIENT_ID
LEFT JOIN EMRAppointmentStatusLkup EAL ON EAL.APPOINTMENT_STATUS_ID = EA.APPOINTMENT_ID
LEFT JOIN EMRConsultantDetails ECD ON ECD.CONSULTANT_ID = EA.CONSULTANT_ID
WHERE ET.TASK_ID = 9 AND EA.APPOINTMENT_STATUS_ID = 2
AND NOT EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1
WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE)
Go to Top of Page

rajasekhar857
Constraint Violating Yak Guru

396 Posts

Posted - 2009-08-13 : 03:13:47
hi iam sending my mssql queries

SELECT ET.EMR_TRANSACTION_ID, ET.TASK_ID, ETL.TASK_NAME, ET.NODE_DEFINITION_ID, ET.ID_VALUE, ET.FLOW_ID,
EA.APPOINTMENT_DATE, EA.APPOINTMENT_TIME, EA.CREATED_DATE, EA.APPOINTMENT_ID, EA.REASON + ' ' + EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS,
EAL.APPOINTMENT_STATUS, EPM.PATIENT_FIRSTNAME, EPM.PATIENT_LASTNAME, EPM.PATIENT_DOB, EPM.PATIENT_HOMEPHONE,
EPM.PATIENT_ID, EPM.PATIENT_TYPE, EPM.PATIENT_GENDER, EPM.RACE_ETHNICITY_ID, EPM.MARITAL_STATUS, '' AS NAME,
ET.USER_LOGIN AS CONSULTANT_ID, ECD.CONSULTANT_NAME, ET.ROLE_NAME, EA.APPOINTMENT_LOCATION_ID AS LOCATION_ID, EPM.REGISTER_ID AS REGISTER_ID, ISNULL(IS_EXPRESS,0) AS IS_EXPRESS, 0 AS LAB_REQUEST_ID, 0 AS SPECIMEN_ID , 1 AS IS_ACTIVE
FROM EMRAppointmentDetailsHistory EA LEFT JOIN
EMRTransactions ET ON ET.ID_VALUE = EA.APPOINTMENT_ID LEFT JOIN
EMRPatientsMaster EPM ON EA.PATIENT_ID = EPM.PATIENT_ID LEFT JOIN
EMRAppointmentStatusLkup EAL ON EAL.APPOINTMENT_STATUS_ID = EA.APPOINTMENT_ID LEFT JOIN
EMRConsultantDetails ECD ON ECD.CONSULTANT_ID = EA.CONSULTANT_ID LEFT JOIN
EMRTASKLISTLKUP ETL ON ETL.TASK_ID = ET.TASK_ID
WHERE ET.TASK_ID = 9 AND EA.APPOINTMENT_STATUS_ID = 2
AND EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1
WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE)
UNION ALL
SELECT ET.EMR_TRANSACTION_ID, ET.TASK_ID, ETL.TASK_NAME, ET.NODE_DEFINITION_ID, ET.ID_VALUE, ET.FLOW_ID,
EA.APPOINTMENT_DATE, EA.APPOINTMENT_TIME, EA.CREATED_DATE, EA.APPOINTMENT_ID, EA.REASON + ' ' + EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS,
EAL.APPOINTMENT_STATUS, EPM.PATIENT_FIRSTNAME, EPM.PATIENT_LASTNAME, EPM.PATIENT_DOB, EPM.PATIENT_HOMEPHONE,
EPM.PATIENT_ID, EPM.PATIENT_TYPE, EPM.PATIENT_GENDER, EPM.RACE_ETHNICITY_ID, EPM.MARITAL_STATUS, '' AS NAME,
ET.USER_LOGIN AS CONSULTANT_ID, ECD.CONSULTANT_NAME, ET.ROLE_NAME, EA.APPOINTMENT_LOCATION_ID AS LOCATION_ID, EPM.REGISTER_ID AS REGISTER_ID, ISNULL(IS_EXPRESS,0) AS IS_EXPRESS, 0 AS LAB_REQUEST_ID, 0 AS SPECIMEN_ID, 0 AS IS_ACTIVE
FROM EMRAppointmentDetailsHistory EA LEFT JOIN
EMRTransactions ET ON ET.ID_VALUE = EA.APPOINTMENT_ID LEFT JOIN
EMRPatientsMaster EPM ON EA.PATIENT_ID = EPM.PATIENT_ID LEFT JOIN
EMRAppointmentStatusLkup EAL ON EAL.APPOINTMENT_STATUS_ID = EA.APPOINTMENT_ID LEFT JOIN
EMRConsultantDetails ECD ON ECD.CONSULTANT_ID = EA.CONSULTANT_ID LEFT JOIN
EMRTASKLISTLKUP ETL ON ETL.TASK_ID = ET.TASK_ID
WHERE ET.TASK_ID = 9 AND EA.APPOINTMENT_STATUS_ID = 2
AND NOT EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1
WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE)
Go to Top of Page
   

- Advertisement -