본문 바로가기

MS-SQL63

[MSSQL] NULL 조건 비교시 유의 할 점 DECLARE @WorkStartDateTime Int = NULL; IF @WorkStartDateTime = NULL BEGIN IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION RETURN ; END //매번 실수 하고 있는 것 ;;;;; //비교시 = NULL을 쓰면 조건을 타지 않는다 . 반드시 IS NULL 로 비교하거나 ISNULL 함수로 치환 해야한다 . -_-;; IF @WorkStartDateTime IS NULL BEGIN IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION RETURN ; END 2016. 2. 18.
[MSSQL] MERGE Insert 후 IDENTITY ID 값 리턴 받아보기 -_-;; 예제 구체적이지 않아 죄송합니다;;INSERT @OutPutTbl SELECT * FROM ( MERGE TargetTbl AS TargetTbl USING (SELECT * FROM @InstUpdtTarget) AS InstUpdtTarget ON TargetTbl.IvtID = InstUpdtTarget.IvtID AND TargetTbl.PlaceCD = InstUpdtTarget.PlaceCD WHEN MATCHED THEN UPDATE SET TargetTbl.ID = InstUpdtTarget.ID WHEN NOT MATCHED THEN INSERT VALUES (InstUpdtTarget.ID) OUTPUT Inserted.ID,InstUpdtTarget.ID,$action ) AS Res.. 2015. 12. 10.
[MSSQL] ROW_NUMBER() 를 이용하여 정렬없이 RowNumber 설정 상수 값으로 설정하게 되면 정렬없이 Row 번호를 부여 할 수 있는 것 같습니다 ;; DECLARE @RowOrder Int SELECT ROW_NUMBER() OVER (ORDER BY @RowOrder) AS RowNumber 2015. 9. 24.
[MSSQL] INSERT TRIGGER 에서 오류가 발생해도 INSERT는 진행되게 설정 -0-;; 거의 이런경우는 없을거라 생각되지만 , 혹시 필요할 경우가 있을거같아서 적어둡니다 ;; 오류가 발생하여도 다음 문을 수행 할 수 있게 하여 기존 테이블에 INSERTED 테이블의 데이터는 삽입이 되게 방법을 찾아보았습니다. SET XACT_ABORT OFF 를 이용 ;;; CREATE TRIGGER TRG_TEST ON TEST FOR INSERT AS -- 오류가 발생하여도 다음 문이 수행되게 SET XACT_ABORT OFF -- 오류 발생 시킴 SELECT 1/ 0 DROP TRIGGER TRG_TEST 2015. 9. 23.