서버 네임 확인
select @@servername
만약 서버네임에 햐이픈 등이 들어가 있다면 ""로 감싸 주어야 한다.
"server-name".dbname.dbo.tablename
트랜잭션
go .. go
go시작부터 다음 go를 만날때 까지 하나의 트랜잭션으로 만들어준다.
꼭 쌍으로(짝수로) 있을 필요는 없다 . 예를들어 2개의 sql문에 4개의 go가 필요하지 않고 3개만 있어도 충분하다.
go
query1
go
query2
go
새로운 테이블을 만들어 기존 테이블의 데이터를 복사
select col1, col2 into testdb_copy from testdb
testdb의 col1, col2 칼럼의 데이터를 가져와서 testdb_copy 테이블에 복사하는 명령어이다. 실제로 db에 col1, col2 컬럼으로 구성된 testdb_copy 테이블이 생성된다.
공백, null 데이터 제외
mssql은 공백('')과 null을 따로 취급한다. 따라서 공백데이터를 제외하고 싶으면 다음과 같이 조건을 주어야한다.
where col != '' and col is not null
중복데이터 제외
select distict col1, col2 from testdb
영어, 숫자 섞여 있는 컬럼 정렬
col1, col2 컬럼을 test 테이블로부터 가져올 때, 숫자 데이터와 영어 데이터가 섞여 있는 col1을 영어 순으로 다 정렬한 다음 숫자 순으로 정렬하고 싶을 때 (A, B, C, CD...ZZZ, 1, 2, 3...이런 식으로 정렬하고 싶을 때)
select col1, col2,
case when ascii(substring(col1, 1, 1)) >=65 and ascii(substring(col1, 1, 1)) <= 119 then 1 " //정렬 순서 1, 영어
when ascii(substring(col1, 1, 1)) < 58 then 2 end as sorting_order " //정렬 순서 2, 숫자
from test
order by sorting_order, col1"