본문 바로가기
728x90
반응형

Skills/MsSQL14

[MSSQL] MSSQL에서 날짜 계산의 마스터가 되는 방법 오늘 날짜 가져오기 현재 날짜와 시간: SELECT GETDATE(); 어제, 내일 날짜 계산하기 어제: SELECT CONVERT(CHAR(8), DATEADD(dd, -1, GETDATE()), 112); 내일: SELECT CONVERT(CHAR(8), DATEADD(dd, +1, GETDATE()), 112); 특정 기간 후의 날짜 계산하기 3개월 후: SELECT CONVERT(CHAR(8), DATEADD(mm, +3, GETDATE()), 112); 1년 후: SELECT CONVERT(CHAR(8), DATEADD(yy, +1, GETDATE()), 112); 이번 달, 다음 달의 시작과 끝 날짜 구하기 이번 달 첫 날: SELECT CONVERT(CHAR(8), DATEADD(dd, 0,.. 2023. 11. 30.
[MSSQL] SQL-Server 자주 사용하는 옵션들 정리 1. SET ANSI_NULLS ON SET ANSI_NULLS ON을 설정하면, SQL Server는 NULL 값 비교를 ANSI SQL 표준에 따라 처리한다. 이 모드에서는 NULL과의 모든 비교 (=, !=, , =)가 UNKNOWN으로 평가된다. 즉, NULL 값은 다른 NULL과도 같지 않다고 간주된다 (NULL = NULL은 거짓). 예를 들어, SET ANSI_NULLS ON 상태에서 WHERE column = NULL 또는 WHERE column != NULL 쿼리는 어떤 결과도 반환하지 않는다. 대신 IS NULL 또는 IS NOT NULL을 사용해야 한다. 2. SET QUOTED_IDENTIFIER ON SET QUOTED_IDENTIFIER ON을 설정하면, 문자열 상수를 따옴표 (.. 2023. 11. 13.
[MSSQL] CONSTRAINT 제약 조건 관련 문법 정리 1. ADD CONSTRAINT 기존 테이블에 새로운 제약 조건을 추가할 때 사용합니다. 예시: ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_name); 2. CHECK CONSTRAINT 특정 컬럼이 특정 조건을 만족해야 함을 지정합니다. 예시: ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK (column_name condition); 3. WITH NOCHECK 제약 조건을 추가할 때 기존 데이터에 대해 제약 조건을 검사하지 않고 제약 조건을 추가합니다. 기존 데이터가 제약 조건을 위반할 경우에 유용합니다. 예시: ALTER TABLE table_name WITH .. 2023. 11. 13.
[MSSQL] SQL-Server 데이터 타입 총정리 1. 숫자 데이터 타입 정수형: TINYINT: 0에서 255까지의 정수를 저장. 1바이트 공간 사용. SMALLINT: -32,768에서 32,767까지의 정수를 저장. 2바이트 공간 사용. INT: -2,147,483,648에서 2,147,483,647까지의 정수를 저장. 4바이트 공간 사용. BIGINT: -9,223,372,036,854,775,808에서 9,223,372,036,854,775,807까지의 정수를 저장. 8바이트 공간 사용. 부동 소수점: FLOAT([n]): 대략 -1.79E+308에서 1.79E+308까지의 범위를 갖는 부동 소수점 숫자를 저장. n은 1에서 53까지 지정할 수 있으며, 저장 공간은 n에 따라 달라짐. REAL: FLOAT(24)와 동일. 대략 -3.40E+38.. 2023. 11. 13.
MSSQL ROW_NUMBER()란? SQL Server에는 ROW_NUMBER()라는 함수가 있다. 조회한 데이터의 ROW 번호를 매겨주는 것인데, 실무를 하다보면 가끔 필요할 경우가 생긴다. 사용 방법은 ROW_NUMBER() OVER(ORDER BY(정렬조건)) 을 사용하면 된다. ORDER BY 절 안에 정렬 조건을 넣어서, 어떤 기준으로 번호를 매길 지 결정해주자. 아래는 STUDENT 테이블에서 학번으로 ROW_NUMBER를 매기는 쿼리문이다. SELECT ROW_NUMBER() OVER(ORDER BY (StudentNumber)) AS RowNum ,StudentNumber FROM Student 만약, 아무 정렬 조건 없이, SELECT했을 때, 보이는 순서대로 번호를 매기고 싶다면, 아래처럼 SELECT 1을 넣어주면 된다.. 2023. 9. 26.
[Error] 연결된 서버 \"서버명\"의 OLE DB 공급자 \"공급자명\"에 대해 중첩 트랜잭션을 시작할 수 없습니다. {"연결된 서버 \"서버명\"의 OLE DB 공급자 \"공급자명\"에 대해 중첩 트랜잭션을 시작할 수 없습니다. XACT_ABORT 옵션이 OFF로 설정되어 있으므로 중첩 트랜잭션이 필요합니다.\r\n커밋할 수 없는 트랜잭션이 일괄 처리 맨 끝에서 검색되었습니다. 트랜잭션이 롤백됩니다.\r\n연결된 서버 \"서버명\"의 OLE DB 공급자 \"공급자명\"이(가) 메시지 \"이 세션에서는 트랜잭션을 더 이상 시작할 수 없습니다.\"을(를) 반환했습니다."} 연결된 서버에 접근해서 Insert하는 프로시저를 동작하는 과정에서 ASP.NET 서버 프로그램에서 발생한 에러이다. SSMS(SQL Server Management Studio) 상에서는 잘 동작될 수도 있지만, 프로그램 상에서 발생할 수 있는 에러인.. 2023. 9. 21.
728x90
반응형