반응형

프로시저를 만들때 sql 스크립트 작성시 항상 혼란 스러웠던 부분이라 이렇게

정리하게 되었다. 단순 나만의 기준으로 정했기 때문에 혹시라도 이것을 참고하시는

분께서는 오해 없으시기 바랍니다. (괜히 이게 정답!! 이러면 곤란합니다멍2

 

- 파스칼 표기법

  모든 단어의 시작을 대문자로 하는 방법 (GetList)

- 카멜 표기법

   단어와 단어 사이를 대문자로 구분하는 방법 (getList)

- 밑줄 표기법

   언더스코어 표기법은 변수를 만들 때, 각 단어를 구분하기 위하여 언더스코어를 사용한다.

 

1. 키워드, 테이블명는 무조건 대문자로 표시 (단, 자료형은 카멜)

2. 변수파스칼 표기법

3. 프로시저명파스칼 + 밑줄 표기법

 

그냥 이정도 이다.

네이밍은 정해진 규약이 없다.

같은 환경에서 개발하는 팀간의 약속으라고 생각하면 될 것 같다.

프로젝트가 진행되기 전이나 사전에 어떠한 네이밍 규칙을 사용할 것인지

정하는 것도 개발 단계의 한 부분이라고 생각이 든다. 슈퍼맨

반응형
반응형

희안하게 이 구문만 자꾸 생각이 안나네.멍2

 

UPDATE    table1

SET         A.col1 = B.col1

FROM      table1 AS M

JOIN        table2 AS S
ON          M.col2 = S.col2

WHERE    M.col3 IS NOT NULL

반응형
반응형

현재 진행중인 프로젝에서 MSSQL Server 2008을 사용하고 있다.

그외의 mysql, oracle 등등 외부 서버가 기세등등 대기 하고 있지만 웬지 친근감이 들지 않는다ㅋㅋ

가끔 오로코로 보고 싶은 녀석들이 있을때 외친다. Hey~~ come on!!  또 헛소리를 ㅜㅜ

SQL Server에서는 Linked Servers 방식을 이용해서 Oracle에 접근하여 데이터를 가져오도록 설정이 되어있다.

지금까지 그냥 아무생각 없이 OPENQUERY() 를 사용하여 쑥쑥 가져왔다. 음.. 음.. 음..

과연 performance는 어땠을까.??  So Bad!!!!!!!

자 그럼 어떤 점이 문제가 있었는지 간단한 예제를 통해서 알아보자.


예) Insert OPENQUERY (TEST, 'select * from test_query')
     value ('first_name', 'last_name', 'address1', 'address2')

결과는 자~~~알 된다. ㅡㅡa

그런데 한가지 문제가 있다!! 바로 Oracle의 test_query 테이블 전체를 쭉 긁어 버린다. 허허

난 단지 데이터를 Insert를 할려고 하는데 전체 Select라.. 이건 불필요한거다.

자자 이래서 이런 것들은

예) Insert OPENQUERY (TEST, 'select * from test_query where 1=0')
     value ('first_name', 'last_name', 'address1', 'address2')

으로 where 1=0 절을 사용함으로써 Oracle에서 실제 Select가 일어나지 않게 하는 것이다.

그리고 Delete나, Update같은 경우 OPENQUERY()문 안에 조건 밑 기능을 추가하여야 한다.

왜?? 그렇게 해야 좋으니깐..ㅋㅋ

에헴.. 더 자세한 내용들은 다음 시간에 생각나면 올리도록 할께요.~~
반응형
반응형

--Getdate()
Select Getdate()

--YYYY/MM/DD
Select Convert(varchar(10),Getdate(),111)

--YYYYMMDD
Select Convert(varchar(10),Getdate(),112)

--HH:MM:SS
Select Convert(varchar(8),Getdate(),108)

--HH:MM:SS:mmm
Select Convert(varchar(12),Getdate(),114)

--HHMMSS
Select Replace(Convert(varchar(8),Getdate(),108),':','')

--HHMMSSmmm
Select Replace(Convert(varchar(12),Getdate(),114),':','')

--YYYY/MM/DD HH:MM:SS
Select Replace(Convert(varchar(30),Getdate(),120),'-','/')

--YYYY/MM/DD HH:MM:SS
Select Replace(Convert(varchar(30),Getdate(),121),'-','/')

--YYYY/MM/DD HH:MM:SS
Select Convert(varchar(10),Getdate(),111) + Space(1) + Convert(varchar(8),Getdate(),108)

--YYYYMMDDHHMMSS
Select Convert(varchar(10),Getdate(),112) + Replace(Convert(varchar(8),Getdate(),108),':','')

반응형
반응형

무슨 이유인지 모르겠지만
SQL Server 2008 Express 버전을 설치하고보니 외부접속이 막혀있었다.

외부 접속을 허용하는 방법은

'시작-모든 프로그램-Microsoft SQL Server 2008-구성 도구-SQL Server 구성 관리자'의
구성 관리자(Sql Server Configuration Manager)를 실행하면

'SQL Server 구성 관리자(로컬)->SQL Server 네트워크 구성->(인스턴트명)에 대한 프로토콜'
이라는 항목이 있다.

여기서 TCP/IP와 명명된 파이프를 사용하도록 설정하면 된다.
TCP/IP는 등록정보를 보면 IP주소 탭에 IPALL의 TCP 포트에 '1433'을 넣고 IP1의 사용도 '예'로 체크되어있는지 확인해야 한다.
반응형

+ Recent posts