COLUMNS_UPDATED() 를 이용하여 HEX 값을 이용하여 SYS.COLUMNS 테이블에서 컬럼명을 찾아내는 것 같습니다만
계산되는 메카니즘을 전혀 이해 하지 못했습니다 -_-;;;
아래는 해당 내용 출처입니다..
출처 : stackoverflow.com/questions/8049810/how-to-get-updated-column-names-in-sql-server
ALTER TRIGGER dbo.TRG_TEST
ON dbo.tbl_user
AFTER UPDATE
AS
BEGIN
DECLARE @TABLE_NAME VARCHAR(30)
SET @TABLE_NAME = 'TBL_USER'
DECLARE @TEST_TABLE TABLE
(
COLUMNNAME VARCHAR(20)
)
INSERT @TEST_TABLE
SELECT 'USER_ID'
UNION
SELECT 'USER_NAME'
SELECT * FROM @TEST_TABLE WHERE COLUMNNAME IN
(
SELECT name FROM sys.columns
WHERE object_id = OBJECT_ID (@TABLE_NAME)
AND SUBSTRING(COLUMNS_UPDATED(),
( ( column_id- 1 ) / 8 + 1 ),1) & ( POWER(2,( ( column_id- 1 ) % 8 + 1 )- 1) ) = POWER(2,( column_id - 1 )% 8)
)
END
'MS-SQL > Query' 카테고리의 다른 글
MSSQL 쿼리 실행 이력 확인 (0) | 2016.05.10 |
---|---|
[MSSQL] NULL 조건 비교시 유의 할 점 (0) | 2016.02.18 |
[MSSQL] MERGE Insert 후 IDENTITY ID 값 리턴 받아보기 -_-;; (0) | 2015.12.10 |
[MSSQL] ROW_NUMBER() 를 이용하여 정렬없이 RowNumber 설정 (0) | 2015.09.24 |
[MSSQL] INSERT TRIGGER 에서 오류가 발생해도 INSERT는 진행되게 설정 -0-;; (0) | 2015.09.23 |