깜놀하는 해므찌로

SQL 컬럼 이름이 예약어일 때 문제 해결하는 방법 / MSSQL Trigger 생성 예시 / SSMS 예약어 문제 해결 방법 feat.Dbeaver 디비버 본문

IT

SQL 컬럼 이름이 예약어일 때 문제 해결하는 방법 / MSSQL Trigger 생성 예시 / SSMS 예약어 문제 해결 방법 feat.Dbeaver 디비버

agnusdei1207 2022. 10. 6. 11:46
반응형
SMALL
CREATE TRIGGER trigger_name
	   ON  talbe
	   AFTER INSERT
	AS 
	BEGIN
		SET NOCOUNT ON;
        
		DECLARE @Action AS CHAR(1)
    
		SET @Action = 'I'
        
	
		IF Exists(select * from deleted)
		begin
			SET @Action = (Case when Exists(SELECT * from inserted) then 'U' else 'D' END)
		end

		Declare @MeasTime AS smalldatetime
		Declare @name AS varchar
		Declare @start AS real
		Declare @stop AS real
		Declare @max AS real
		Declare @avg AS real
		Declare @rms AS real
		Declare @stnbr AS varchar
    
		IF @Action != 'D'
			Begin
				SELECT @MeasTime = MeasTime, @name = name, @start = start, @stop = stop, @max = max, @avg = avg, @rms = rms, @stnbr = stnbr FROM inserted;
				INSERT INTO VmSDSM01_LOG(MeasTime, name, start, stop, max, avg, rms, stnbr, sys_dt, div) values(@MeasTime, @name, @start, @stop, @max, @avg, @rms, @stnbr, getDate(), @Action);
			End   
	END

1. 컬럼 이름이 max, avg 등 예약어를 사용하는 경우 웬만한 DBMS 툴로는 문제가 발생한다.

2. DBeaver 디비버를 사용하면 이러한 예약어가 있음에도 불구하고 컬럼이름으로써 사용할 수 있습니다.

반응형
LIST