목록DATA/SQLServer (19)
Data Modeling Evangelist Kaien Kim's Blog
Oracle sequence 구현하기 1. http://roqkffhwk.tistory.com/138 2. Sequence를 테이블로 만들어 관리하기http://www.databaser.net/moniwiki/wiki.php/MS-SQL%EC%97%90%EC%84%9COracle%EC%9D%98Sequence%EB%94%B0%EB%9D%BC%ED%95%98%EA%B8%B0
오라클에서는 TRUNC함수로 소수점 이하 자리 절삭을 하는데, SQLServer에서는 TRUNC함수가 없다. 그러면 어떻게 해야하는가? 이렇게 하면 된다. SELECT ROUND(150.75665, 2, 1) > 150.75000 SELECT ROUND(150.75665, 2, 0) > 150.76000 정리하면... ROUND ( numeric_expression, length [ , function ] ) numeric_expression 정확한 숫자 데이터 형식 또는 근사 숫자 데이터 형식이나 암시적으로 float로 변환할 수 있는 형식의 식입니다. length numeric_expression을 반올림할 전체 자릿수입니다. length가 양수이면 numeric_expression은 length에 ..
1. 특정 문자가 포함된 SP 검색 SELECT A.NAME FROM SYSOBJECTS A, SYSCOMMENTS B WHERE A.ID = B.ID AND B.TEXT LIKE '%' + '김승태' + '%' 2. 특정 이름의 SP 검색 SELECT A.NAME FROM SYSOBJECTS A, SYSCOMMENTS B WHERE A.ID = B.ID AND A.NAME LIKE '%' + @sp_name + '%'
/* 동적 쿼리의 해결사 sp_executesql vs. exec 소개. Visual Basic, ASP, VB.NET에서 ADO, ADO.NET을 이용한 Database 프로그램을 개발하는 경우 프로그램내에 SQL 구문을 문자열로 연결한 후, 실행하도록 구성한 코드를 많이 보게 된다. 이러한 코드 구성을 일반적으로 '동적 쿼리', '하드 코딩된 쿼리'라고 부른다. ex. vb의 경우 Dim strSQL As String strSQL="select orderid, orderdate, employeeid from orders" strSQL=strSQL+" where orderid=" & txtOrderID cnn.Execute strSQL 그러나, 이러한 동적 쿼리의 사용은 가능한 배제하는 것이 권장 사항..
TRY..CATCH를 이용한 중첩 트랜잭션 예외처리. 개요. TRY .. CATCH 구문 내에서의 트랙잭션 처리에 대해 어떻게 구현되는지 알아보는 것과 트랜잭션으로 처리하는 프로시저 내에서 다시 트랜잭션으로 처리하는 프로시저를 호출 시 제대로 작동하는지 확인하는 것이 이 문서의 목적입니다. 테스트 샘플. 테스트 샘플은 분모를 파라미터로 받아서 0을 제외한 값은 에러가 나지 않고 0인 값은 에러가 나는 예제입니다. 1. 테스트 테이블 생성 CREATE TABLE TryTest ( id1 int, id2 int ) 2. 부모 프로시저 작성. CREATE PROCEDURE ParentTest ( @bunmo int ) AS BEGIN SET NOCOUNT ON; BEGIN TRY BEGIN TRAN Paren..
SQL Server에서 컬럼 값의 길이를 가져와야 할 경우, 크게 - 그냥 길이 - byte수 로 구분할 수 있다. 오라클에서는 1) SELECT LENGTH('모델링월드') FROM DUAL; 2) SELECT LENGTHB('모델링월드') FROM DUAL; 일 경우 1)은 5, 2)는 10을 리턴한다. 이건 이전 부터 알고있었는데, 요걸 SQLServer에서 사용할 일이 생겼다. 열심히 찾아 보았다. ^^; 역시 있었다. 문법도 오라클과 동일하다. DATALENGTH ( expression ) -인수 expression 임의 데이터 형식의 식입니다. -반환 값 int 1) SELECT LEN('모델링월드') 2) SELECT DATALENGTH('모델링월드') 일 경우 1)은 5, 2)는 10을 리..
DATEADD(hh, 9, DATEADD(s, regdate, '1970-01-01'))
SQLServer2005설치 후 잘 설치가 되었는지 확인해보자. 1. 실행 에서services.msc입력 후 확인 2. 서비스 창에 - SQL Server(ADMIN1) - SQL Server Agent(ADMIN1) - SQL Server Analysis Services(ADMIN1) - SQL Server FullText Search(ADMIN1) 등 의 서비스가 "시작됨"으로 되어있으면 정상적으로 설치된것이다. "ADMIN1"은 명명된 인스턴스로 설치했을 경우 입력한 이름입니다. 혹! 틀린부분이 있다면 의견 바랍니다~^^
-- 15일 후 날짜구하기 SELECT GETDATE(), DATEADD(DD, 15, getdate()) -- 3달 후 날짜구하기 SELECT GETDATE(), DATEADD(MM, 3, getdate()) -- 기간차이 구하기(날짜 사이의 간격) SELECT DATEDIFF(year, '20051220', '20060101') SELECT DATEDIFF(month, '20051220', '20060101') SELECT DATEDIFF(day, '20051220', '20060101') SELECT DATEDIFF(hh, date1, date2) SELECT DATEDIFF(mi, date1, date2) -- 분 SELECT DATEDIFF(ss, date1, date2) -- 초 SELECT ..
============================================================================ 1. DBCC CHECKALLOC - 디스크 공간 할당 구조의 일관성을 검사 ============================================================================ DBCC CHECKALLOC ( '데이터베이스이름' [ , NOINDEX -- 시스템 테이블이 아닌 테이블의 클러스터되지 않은 인덱스를 검사하지 않음 | { -- 단일사용자모드에서만 사용가능 REPAIR_ALLOW_DATA_LOSS -- 일부데이터손실 될 수 있음 | REPAIR_FAST -- 대충복구 | REPAIR_REBUILD -- 모든복구작업수행 (인..