라벨이 Database인 게시물 표시

오라클 프로시져 MSSQL 프로시져로 변환

 오라클 프로시져를 MSSQL 프로시져로 변환시 유용한 정보 ​ DECODE 는 CASE 문으로 대체 SELECT A, B INTO A,B FROM DUALS 문은 SET @A=A; SET @B=B 형식으로 변경 NUMBER 타입은 INT,DECIMAL,NUMERIC 형식으로 필요에 따라 변경 ADD_MONTH 는 DATEADD(M,날짜) 로 수정 가능 에러 처리 변경 -- Oracle EXCEPTION WHEN NO_DATA_FOUND THEN     rollback; END; -- MSSQL IF @@ERROR <> 0 BEGIN     IF @@ROWCOUNT = 0 BEGIN         ROLLBACK     END END

MSSQL 서버 테이블 수정하기/자동증가값 초기화/패스워드 암호화 하기

MSSQL 요즘 MS SQL서버를 주로 만집니다. 회사에서 주로 쓰는DB라서 말이죠 그래서 MS SQL 서버 테이블 수정하는 법을 간단히 정리해봅니다. 1. 테이블 필드 수정하기 alter table 테이블명 alter column 필드명 수정할 필드 타입 ex) alter table d_sale alter column title varchar(200) not null 2. 필드 삭제하기 alter table 테이블명 drop 필드명 ex) alter table d_sale drop title 3. 필드 추가하기 alter table 테이블명 add 필드명 필드 타입 ex) alter table d_sal add sale varchar(20) not null 4. 프로시져명 변경 --alter 로 가능할줄 았앗는데..  --sp_rename 이란 프로시져를 이용해서 변경해야 하더군요..   ex) EXEC sp_rename 'd_sale.title' 'title1' 5. 필드 자동 증가값 초기 --테이블에 자동증가 로 설정된 값을 초기화 하는 방법 DBCC CHECKIDENT([table_name], RESEED, 0) 6. 패스워드 암호화 MSSQL 에도 mysql 의 password 함수와 비슷한 기능의 함수가 있습니다. 바로 pwdencrypt 와 pwdcompare pwdencrypt('암호') 이렇게 저장을하고 pwdcompare('암호',passwd) 이렇게 비교를 합니다 pwdcompare 는 리턴값이 1,0 을 반환하는데 1이면 맞고 0이면 틀리는.. 그리고 pwdencrypt 로 저장할 필드는 반드시 varbinary 형식이여야 합니다.

[MySQL] SQL 배치 작업 하기

 리눅스에서는 cron 이라는 좋은툴이 있으니 넘어가고 윈도우에서 MySQL 배치 작업을 하는 방법을 소개합니다. MySQL윈도우 버전을 설치하면 MySQL Command Line Tool이 같이 설치됩니다. 이툴을 사용하여 배치작업을 할예정인데요. 배치작업을 위해 두개의 파일이 필요합니다. bat확장자를 가진 배치파일과 실행될 SQL 이저장된 파일 ​ 1. 우선 bat 파일을 하나 만듭니다. ex) MYSQL_BATCH.bat 그리고 다음과 같이 코딩합니다. C:\PROGRA~1\MySQL\MYSQLS~1.1\bin\mysql.exe -u아이디 -p패스워드 < runsql.sql (MySQL 설치위치는 설치환경에 따라 다를수 있습니다!) bat 파일을 저장합니다. ​ 2. SQL 파일을 하나 만듭니다. ex) runsql.sql runsql.sql 파일에 실행할 대상의 SQL 들을 정리해서 입력합니다. ​ 3. 미리 작성한 sql문을 테스트 하고 ​ 4. 마지막으로 윈도우 제어판에가서 예약을 설정합니다. 이때 처음작성한 bat 파일을 원하는시간에 동작하도록 설정하면 사용자가 원하는 시간에 실행되는 배치작업이 완성됩니다.

MSSQL 특정 테이블/문자를 사용하는 프로시져 찾기

  주로 업무용 프로그램을 하다보니 SP를 이용해서 처리하는 경우가 많은데 테이블을 변경할경우 테이블에 관련된 SP를 찾기 위한 명령어임 ​ 1. 특정 테이블을 사용하는 프로시져 찾기 select SO.NAME from syscomments SC join sysobjects so on   sc.id = so.id where so.xtype='p'   and sc.text like '%Table1%' 이렇게하면 특정테이블을 사용하는 프로시져 목록이 나온다. ​ 2. 특정 문자가 포함된 프로시져 찾기 select SO.NAME from syscomments SC  join sysobjects so on sc.id = so.id  where so.xtype='p'  and sc.text like '%찾을문자%'