암호화
함수나 프로시저를 보호하고 싶을 때 암호화를 하면 된다.
EX)
CREATE FUNCTION Fn_GetNameById(@Id int)
Returns nvarchar(30)
with ENCRYPTION
as
....
스키마 바인딩(Schemabinding)
스키마를 묶는다는 의미같은데 일단 쿼리를 쓸 때에 '*'을 쓸 수 없다. 컬럼명을 직접 지정해줘야한다. 그리고 From뒤에 테이블 이름을 넣을 때에도 절대 경로(?) 절대 이름을 넣어줘야한다. 뷰를 묶어서 저장시킨다는 개념인데 왜 굳이 그러냐 하면 인덱스를 넣을 수 있어서 이다.
로컬 임시 테이블(Local Temporary tables)
테이블 이름 앞에 #(샾)을 붙이면 된다. 이렇게 해서 Created 된 테이블은 tembdb에 temporary Tables에 저장이 된다. like dbo.#PersonDetail___________________________1232311.
그리고 로컬 임시 테이블은 오직 그 쿼리가 작성된 곳에서만 유효하다. 그 쿼리가 작성된 곳을 닫으면 임시테이블은 자동으로 Drop된다. (태어난 곳이 사라지면 본인도 사라짐)
Tip
검색을 할 시
Select name from tembdb...sysobjects
where name like '#PersonDetails%'
끝에 %를 붙여서 찾아야 찾아진다.
그리고 임시테이블이 프로시저안에서 생성이 되었다면 밖에서 생성이 안된다. 스코프에 대한 개념 이해가 있으면 적용하면 됨.
글로벌 임시 테이블(Global Temporary tables)
테이블 이름 앞에 ##(샾샾)을 붙이면 된다. 모든 커넥션에서 다 볼 수 있음. 전역에 적용이 되기 때문에 중복된 이름이 커넥션마다 존재 할 수 없다.
'Database > SQL Server' 카테고리의 다른 글
MS SQL - 인덱스의 장점 & 단점 / Advantages and disadvantages of indexes (0) | 2020.12.04 |
---|---|
MS SQL - 유니크 인덱스 / 비 유니크 인덱스(Unique index / Non Unique index) (0) | 2020.12.04 |
MS SQL - 결정적 함수 와 비결정적 함수(Deterministic and Nondeterministic) (0) | 2020.12.04 |
MS SQL-사용자 지정 함수(스칼라, 인라인 테이블, 다중 테이블) (0) | 2020.12.04 |
MS SQL Query 내장 함수(문자열, 숫자, 시간 관련 ) (0) | 2020.12.04 |