프로시저와 비슷해 보이지만 일반 프로그래밍 언어에서 사용되는 함수와 갗이 복잡한 프로그래밍이 가능하며 return문에 의해 특정 값을 돌려주는 기능이 있음

select문에 포함되어 실행 가능하며 스칼라 함수는 exec로 실행 가능


시스템 함수

sql server 에서 제공하는 함수


사용자정의 스칼라 값 함수

리턴 값이 단일 값인 함수로서 text, ntext, image, cursor, timestamp를 제외한 모든 데이터 형식이 가능



사용자정의 테이블 값 함수

테이블 함수 라고도 하며 리턴 값이 테이블인 함수

인 라인 테이블 함수, 다중 문 테이블 함수가 있음


인 라인 테이블 함수

테이블을 돌려주는 함수이며 뷰와 비슷한 역할을 함

select문이 와서 결과 집합을 돌려줌


다중 문 테이블 함수

begin ~ end 로 정의되며 내부에 일련의 T-SQL을 이용해서 반환될 테이블에 행 값을 insert 하는 형식을 가짐



스키마 바운드 함수

테이블, 뷰 등이 수정되지 못하도록 설정한 함수

예를 들어 함수A가 테이블B, 뷰C 를 참조하고 있다면 이 테이블이나 뷰를 삭제하거나 열 이름을 바꾸지 못하게 함

함수 생성 시 with schemabinding 옵션을 주면 됨


사용자 정의 함수에서는 try~catch 사용이 불가하며 create, alter, drop또한 사용이 불가능함

함수 실행 중 오류가 발생하면 함수의 실행이 멈추고 값을 반환하지 않음


'MSSQL' 카테고리의 다른 글

커서  (0) 2016.03.10
블로킹과 교착상태  (0) 2016.03.10
트랜잭션과 잠금  (0) 2016.03.10
저장 프로시저  (0) 2016.03.10
인덱스  (0) 2016.03.10

+ Recent posts