2016-11-13 1 views
0

테이블이 있습니다. 이 표에는 'insert_name'과 'modified_name'두 개의 열이 있습니다. 테이블에 데이터를 삽입 한 사람 ('insert_name')과 테이블 (modified_name)에서이 데이터를 변경 한 사람에 대한 데이터를이 열에 삽입해야합니다. 어떻게 할 수 있습니까?테이블에 사용자 이름 레코드를 삽입하는 방법

enter image description here

+0

그것을 설명하기 위해 일부 그래픽 표현이나 데이터를 추가 Current_Use 의 사용을 참조하십시오. –

+0

그래픽 표현을 추가했습니다. –

답변

1

당신은 기본 DML 문을 찾고있다.

레코드가 이미 테이블에있는 경우 UPDATE이 필요합니다. 그렇지 않으면 레코드를 추가하려고 할 때 대상 테이블에 레코드가 없으면 INSERT INTO 문을 찾습니다. 새 레코드를 삽입

UPDATE yourtable SET insert_name = 'value1', modified_name = 'value2' WHERE id = 1 

예 : 첫 번째 ID로 기록에 대한 정보를 업데이트

INSERT INTO yourtable(id, company_name, product_name, insert_name) 
VALUES (1, 'Google', 'PC', 'value1') 

당신이 그 컬럼에 대한 자동 변경을 찾고 있다면 당신은으로 볼 필요가 트리거.


더 자주 못하는 것보다 당신이 (갱신 자, 삽입 WHO) 데이터베이스에 연결하는 응용 프로그램이 당신이 아마 응용 프로그램 자체 내에서 컨텍스트를 알고있는 경우 단일 데이터베이스 사용자를 사용하는 것을 알 수 있습니다 것을 기억하십시오. 이렇게하면 트리거가 제거되고 응용 프로그램 계층 내에서 간단한 삽입/업데이트 명령을 통해 작업을 바로 수행 할 수 있습니다.

0

CURRENT_USER 함수를 사용하여 변경 한 사용자의 이름을 찾을 수 있습니다.

이 함수의 값을 사용하여 적절한 열을 업데이트 할 수 있습니다. 이 업데이트는 INSERT 또는 UPDATE 문의 일부로 수행 될 수 있습니다. 또는 INSERT 또는 UPDATE 트리거를 사용하십시오.

가능한 경우 개인적으로 트리거를 피합니다.

0

이 두 열의 경우 Current_User를 Default 제약 조건으로 추가하십시오. Insert Statement가 현재 로그인 사용자 이름으로 처음 저장할 때. 업데이트의 경우 Modified_Name 열에 대해 동일한 Current_User 문으로 업데이트 트리거를 작성하십시오.

응용 프로그램 비즈니스 논리에서 modified_nme 열을 업데이트 할 수없는 경우에만 트리거 만 찾습니다.

https://msdn.microsoft.com/en-us/library/ms176050.aspx

관련 문제