회사 ERP 모듈 중에 요청된 날짜를 기준 해당 연도의 모든 직원들의 연차 사용 이력을 조회 하는것이 있다.ERP 기본 프로시져인지 아님 커스터마이징한 프로시져인지는 모르겠지만.입사일을 varchar(8) "20180101" 로 입력을 받고 조회시는 문자열을 날짜형으로 형변환해서 조회를 한다.잘 사용하던 모듈이 문자열을 날짜형으로 변환할 수 없다는 오류를 내뱉는다.이래 저래 확인 해보니 입사일 데이터 중 하나가 "2018010" 으로 마지막 숫자가 빠진 7자리가 입력되었다.물론 인사팀은 모르쇠로 기억이 없다고 하지만 말이다.그리고 이런 생각이 들었다.약속된 형식의 데이터는 입력되어야 하지만, 과연, 저 상황에서 substr 으로 해결 가능한 것을 굳이 형변환을 해야하는지?그리고 왜 입사일 데이터형을 문자..
상황 : MSSQL 데이터베이스에서 PHP로 select 쿼리를 날렸는데 다른 놈들은 다 잘 오는데 datetime 이 아이만 팔다리 짤려서 돌아왔다.SQL : SELECT NO, NAME, REG_DATE FROM TABLERETURN : 1, 홍길동, 11 해결 : 이에 불쌍히 여겨 팔다리 붙여 줄려고 찾아 본니..."CONVERT"를 이용하면 된다.DATETIME 자료형은 CONVERT(CHAR(19), REG_DATE, 120) 으로 형변환 해야 한다.SQL : SELECT NO, NAME, CONVERT(CHAR(19), REG_DATE, 120) AS REG_DATE FROM TABLERETURN : 1, 홍길동, 2017-01-12 13:12:20 배움 : CONVERT 에서 숫자 상수의 의..
backup.sql declare @dir nvarchar(100) set @dir = N'D:\backup\[데이터베이스명]-' + convert(nvarchar(20), getDate(), 112) +N'.bak' BACKUP DATABASE [데이터베이스명] TO DISK = @dir WITH NOFORMAT, NOINIT, NAME = N'welfare7-Full', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO backup.bat @echo off rem 지난 7일자 날짜 echo wscript.echo ^(Date^(^)- 7^)>delday.vbs for /f %%a in ('cscript //nologo delday.vbs') do set delday=%%a del..
-소유자 변경 use [DATABASE_NAME]; exec sp_changeobjectowner '[OLD_OWNER].[TABLE_NAME]','[NEW_OWNER]' -디비백업 BACKUP DATABASE [DATABASE_NAME] TO DISK = '[BACKUP_FILE_PATH]'
2000에서 2005로 이전시 테이블 스키마소유자가 변경 될 수 있다. declare @table_name varchar(500) declare table_cur Cursor for select 'FROM_SCHEME.' + name from sysObjects where uid = USER_ID('FROM_SCHEME') open table_cur Fetch next From table_cur into @table_name while @@Fetch_status = 0 Begin EXEC sp_changeobjectowner @table_name, 'TO_SCHEME' Fetch next From table_cur into @table_name End close table_cur deAllocate ta..
데이터베이스 중지 가능할때 1. 데이터베이스 생성 2. 데이터베이스 중지 3. MDF,LDF 복사 4. 데이터베이스 시작 5. 쿼리분석기 EXEC sp_attach_db @dbname = N'디비명' , @filename1 = N'ldf경로\ldf명' , @filename2 = N'mdf경로\mdf명' 실행 데이터베이스 중지 불가능할때 1. 데이터베이스 생성 2. 데이터베이스 분리 3. MDF,LDF 복사 5. 쿼리분석기 EXEC sp_attach_db @dbname = N'디비명' , @filename1 = N'ldf경로\ldf명' , @filename2 = N'mdf경로\mdf명' 실행 @Reference http://blog.naver.com/park5609/30046499107