EXEC sp_helptext 트리거명;
'DB > MSSQL' 카테고리의 다른 글
초간단 트리거 문법 (0) | 2016.08.24 |
---|---|
테이블 명세서 쿼리문 (0) | 2014.09.23 |
0을 나누기 에러 대신 null 반환되도록 하기 (0) | 2014.09.19 |
숫자 앞에 0으로 채우기 (0) | 2014.09.04 |
SELECT UPDATE 구문 (0) | 2014.04.17 |
EXEC sp_helptext 트리거명;
초간단 트리거 문법 (0) | 2016.08.24 |
---|---|
테이블 명세서 쿼리문 (0) | 2014.09.23 |
0을 나누기 에러 대신 null 반환되도록 하기 (0) | 2014.09.19 |
숫자 앞에 0으로 채우기 (0) | 2014.09.04 |
SELECT UPDATE 구문 (0) | 2014.04.17 |
DROP TRIGGER [트리거명] -- 트리거 삭제
CREATE TRIGGER [트리거명] ON [테이블명]
AFTER INSERT,UPDATE,DELETE -- FOR INSERT,UPDATE,DELETE 와 같음
AS
BEGIN
DECLARE @action char(1) -- 구분자 변수선언
DECLARE @test nvarchar(20) -- 셀렉트한 데이터 저장용 변수 선언
IF COLUMNS_UPDATED() > 0 -- insert or update
BEGIN
IF EXISTS (SELECT * FROM DELETED) -- update
SET @action = 'U'
ELSE
SET @action = 'I'
END
ELSE -- delete
BEGIN
SET @action = 'D'
END
SELECT Name,@action FROM DELETED;
-- 변수에 값넣기 - 첫번째. 데이터 주입
SELECT @test = 0
-- 변수에 값넣기 - 두번째. 타 테이블에서 불러오기
SELECT @test = col1 FROM table1
-- 변수에 값넣기 - 세번째. INSERT 혹은 UPDATE 한 데이터에서 가져오기
SELECT @test = col2
FROM inserted
-- IF문
IF @test = 0 BEGIN -- IF 조건이 참일때
SELECT 1 -- 조건 걸어넣고 쿼리문 없으면 에러나므로 방지용
END ELSE IF @test > 0 AND @test < 10 BEGIN -- ELSE IF 조건이 참일때
SELECT 1
END ELSE BEGIN -- ELSE 일때
SELECT 1
END
-- null 비교
-- @test is null, @test is not null
END
참고: http://rocabilly.tistory.com/48
트리거 소스보기 (0) | 2016.10.31 |
---|---|
테이블 명세서 쿼리문 (0) | 2014.09.23 |
0을 나누기 에러 대신 null 반환되도록 하기 (0) | 2014.09.19 |
숫자 앞에 0으로 채우기 (0) | 2014.09.04 |
SELECT UPDATE 구문 (0) | 2014.04.17 |
use [DB명]; SELECT a.TABLE_NAME, a.COLUMN_NAME, '' as description, case when a.CHARACTER_MAXIMUM_LENGTH IS null then a.DATA_TYPE else a.DATA_TYPE + '(' + ltrim(str(a.CHARACTER_MAXIMUM_LENGTH)) + ')' end as DATATYPE, case when a.column_name=isnull(b.column_name,'') and c.constraint_type='PRIMARY KEY' then 'Y' else ' ' end as PK, case when a.column_name=isnull(b.column_name,'') and c.constraint_type='FOREIGN KEY' then 'Y' else ' ' end as FK, case when a.IS_NULLABLE='YES' then 'Y' else '' end as NOT_NULL, case when a.COLUMN_DEFAULT=isnull(a.COLUMN_DEFAULT,'') then a.COLUMN_DEFAULT else ' ' end as DefaultValue FROM INFORMATION_SCHEMA.COLUMNS a LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE b on (a.table_name+a.column_name=b.table_name+b.column_name) LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS c on (b.constraint_name=c.constraint_name) ORDER BY a.TABLE_NAME, a.ORDINAL_POSITION;
트리거 소스보기 (0) | 2016.10.31 |
---|---|
초간단 트리거 문법 (0) | 2016.08.24 |
0을 나누기 에러 대신 null 반환되도록 하기 (0) | 2014.09.19 |
숫자 앞에 0으로 채우기 (0) | 2014.09.04 |
SELECT UPDATE 구문 (0) | 2014.04.17 |
설정하는 방법
SET ANSI_WARNINGS OFF; SET ARITHIGNORE ON; SET ARITHABORT OFF;
아래는 msdn에 올라온 각각의 옵션에 대한 설명
ANSI_WARNINGS : http://msdn.microsoft.com/ko-kr/library/ms190368.aspx
ARITHIGNORE : http://msdn.microsoft.com/ko-kr/library/ms184341.aspx
ARITHABORT : http://msdn.microsoft.com/ko-kr/library/ms190306.aspx
초간단 트리거 문법 (0) | 2016.08.24 |
---|---|
테이블 명세서 쿼리문 (0) | 2014.09.23 |
숫자 앞에 0으로 채우기 (0) | 2014.09.04 |
SELECT UPDATE 구문 (0) | 2014.04.17 |
CASE 문 (0) | 2014.01.14 |
1. REPLICATE
SELECT REPLICATE('0',6-LEN(EmployeeId)) + EmployeeId
2. RIGHT
SELECT Right('000000' + CONVERT(NVARCHAR, EmployeeID), 6)
개인적으론 2안이 복잡하지 않고 부하가 적어서 더 나은 것 같다.
테이블 명세서 쿼리문 (0) | 2014.09.23 |
---|---|
0을 나누기 에러 대신 null 반환되도록 하기 (0) | 2014.09.19 |
SELECT UPDATE 구문 (0) | 2014.04.17 |
CASE 문 (0) | 2014.01.14 |
select insert update 구문 (0) | 2014.01.14 |
UPDATE table1 SET col1 = B.col1 FROM table1 A, table2 B WHERE A.col2=B.col2 AND A.col3=B.col3
테이블 명세서 쿼리문 (0) | 2014.09.23 |
---|---|
0을 나누기 에러 대신 null 반환되도록 하기 (0) | 2014.09.19 |
숫자 앞에 0으로 채우기 (0) | 2014.09.04 |
CASE 문 (0) | 2014.01.14 |
select insert update 구문 (0) | 2014.01.14 |
UPDATE table_name SET col1=CASE ? WHEN '' THEN col1 ELSE ? END WHERE col2=? and col3=?
테이블 명세서 쿼리문 (0) | 2014.09.23 |
---|---|
0을 나누기 에러 대신 null 반환되도록 하기 (0) | 2014.09.19 |
숫자 앞에 0으로 채우기 (0) | 2014.09.04 |
SELECT UPDATE 구문 (0) | 2014.04.17 |
select insert update 구문 (0) | 2014.01.14 |
IF NOT EXISTS (SELECT col1 FROM table_name WHERE col2=? and col3=?) INSERT INTO table_name (col1, col2, col3) VALUES (?, ?, ?) ELSE UPDATE table_name SET col1=? WHERE col2=? and col3=?
테이블 명세서 쿼리문 (0) | 2014.09.23 |
---|---|
0을 나누기 에러 대신 null 반환되도록 하기 (0) | 2014.09.19 |
숫자 앞에 0으로 채우기 (0) | 2014.09.04 |
SELECT UPDATE 구문 (0) | 2014.04.17 |
CASE 문 (0) | 2014.01.14 |