년, 월 주차 -- 월 주차DECLARE @DTCUR DATETIME = '20180416'DECLARE @DT CHAR(8)SET @DT = CONVERT(CHAR(8), @DTCUR, 112) SELECT DATEPART(WK, @DT) - DATEPART(WK, LEFT(@DT, 6) + '01') + 1 -- 년주차 SELECT DATEPART(WEEK,CAST(@DTCUR AS DATETIME)) DataBase/SQL Server 2018.04.16
MS SQL 테이블의 FILE GROUP 검색 Select A.name , C.groupid , C.groupnameFrom sys.sysobjects AS A INNER JOIN sys.sysindexes AS B ON A.id = B.id INNER JOIN sys.sysfilegroups AS C ON B.groupid = C.groupidWHERE A.name LIKE 'P%' AND type = 'U' DataBase/SQL Server 2018.04.12
테이블별 사용 용량 구하기 SELECT MAX(B.name) AS TableName ,CAST((SUM(A.reserved) * 8192.0 / 1024 ) AS NUMERIC(18, 0)) AS TableSizeKB ,CAST((SUM(A.reserved) * 8192.0 / 1048576) AS NUMERIC(18, 0)) AS TableSizeMBFROM sysindexes AINNER JOIN sysobjects B ON B.id = A.idWHERE A.indid in (0, 1, 255)AND B.xtype = 'U'GROUP BY A.idORDER BY SUM(a.reserved) DESC; DataBase/SQL Server 2018.02.27
MSSQL 에서 C# 함수 사용 1. mssql 에서 clr (common language runtim) 활성화1EXEC SP_CONFIGURE 'clr enabled'위 쿼리로 현재 clr enabled 설정을 확인 할 수 있다.123name minimum maximum config_value run_value----------------------------------- ----------- ----------- ------------ -----------clr enabled 0 1 0 0※ 현재는 비활성화 상태12EXEC SP_CONFIGURE 'clr enabled', 1RECONFIGURE WITH OVERRIDE위 쿼리로 활성화를 하장2. 작성한 c# dll을 등록 사용권한 설정이 필요하다면 추가로 설정해 주자이제 어셈블리 .. DataBase/SQL Server 2017.11.03
MS SQL Server 대/소문자 구분하여 검색 SELECT * FROM 테이블 WHERE 필드명 COLLATE Korean_Wansung_CS_AS ='소문자' DataBase/SQL Server 2017.10.27
백분율 공식 사용할때 주의할 점 (MS-SQL 2008 R2기준) 백분율을 구하는 공식은 다들 알고 있다시피실존값 / 전체값 * 100 이다. SELECT 30 / -100.0 * 100 SELECT 30 / 100.0 * 100 위처럼 두개의 SELECT문을 보면 사칙연산에 의해서 결과값은 +/- 부호만 다른 같은 결과값이 나올것이라고 예상하기 쉽다.하지만, 결과 값을 보면--------------------------------------- -0.003000000(1개 행이 영향을 받음)--------------------------------------- 30.000000(1개 행이 영향을 받음) 두 개의 결과값이 다르다는 것을 알 수 있다.이유는, 나눗셈(/) 연산에서 분모의 값이 0보다 작은 경우 곱셈(*) 연산을 먼저 수행한다.괄호 ()로 명시하여 먼.. DataBase/SQL Server 2017.09.20
Update, Delete Join사용 1. Update -- Table_A의 Name필드의 값이 'A'인 열을 'B'로 UpdateUPDATE Table_A SET Name = 'B' FROM Table_A WHERE Name = 'A' -- Table_A와 Table_B를 Type 필드로 Inner Join하여-- Table_B에 Sort값이 'X'에 해당하며 Table_A의 Type이 Table_B와 일치한 Name값을 'B'로 변경UPDATE Table_A SET Name = 'B' FROM Table_A a INNER JOIN Table_B b ON a.Type = b.TypeWHERE b.Sort = 'X' 2. Delete -- Table_A와 Table_B를 Type 필드로 Inner Join하여-- Table_B에 Sort값이.. DataBase/SQL Server 2017.09.20
메모리 테이블 활용하기 -- 디스크내에 할당되는 실제 테이블이 아닌 프로시저에서 메모리에 사용하고 버려지는 휘발성 테이블 DECLARE @Table TABLE(IDX int identity(1,1), name VARCHAR(20), InsertDate DATETIME) INSERT INTO @TableVALUES ('사과', GETDATE()) SELECT * FROM @Table[출처] 메모리 테이블 활용하기|작성자 만쥬 DataBase/SQL Server 2017.09.20
테이블 필드 추가 ALTER TABLE 테이블명 ADD 필드명 필드타입 [NOT NULL] [default 값] 필드타입 = INT, VARCHAR(50) 등등[]안의 내용은 옵션, 생략해도 됨. NULL 허용 일 경우, 이미 데이터가 있는 Row의 필드값은 모두 NULL이 되기 때문에 데이터를 초기화 해주는 작업이 필요함[출처] 테이블 필드 추가|작성자 만쥬 DataBase/SQL Server 2017.09.20
테이블 필드명, 테이터타입 변경 1. 필드명 변경EXECUTE sp_rename N'dbo.테이블명.변경할필드명', N'변경될필드명', 'COLUMN' 2. 데이터타입 변경ALTER TABLE 테이블명 ALTER COLUMN 필드명 데이터타입 ※ 해당 필드가 인덱스 or 제약조건이 있다면 삭제 후 데이터 타입을 변경하고 다시 인덱스 or 제약조건을 생성해 주어야 한다.[출처] 테이블 필드명, 테이터타입 변경|작성자 만쥬 DataBase/SQL Server 2017.09.20