▶[MS-SQL] TEL 전화번호 MASKING 마스킹 -- 함수생성 CREATE FUNCTION [dbo].[FN_MASK_TELNO](@STR VARCHAR(50)) RETURNS VARCHAR(50) AS BEGIN DECLARE @RTNVALUE VARCHAR(50), @STRLEN INT, @POS INT, @VSTR VARCHAR(50); SET @VSTR = REPLACE(REPLACE(@STR, ' ', ''), '-', ''); SET @STRLEN = LEN(@VSTR); IF @STRLEN < 7 BEGIN SET @RTNVALUE = @VSTR; END; ELSE IF @STRLEN = 7 BEGIN SET @RTNVALUE = '***-' + RIGHT(@VSTR, 4); END;..
▶[MS-SQL] E-MAIL 이메일 MASKING 마스킹 -- 함수생성 CREATE FUNCTION [dbo].[FN_MASK_EMAIL] (@STR VARCHAR(50) ) RETURNS VARCHAR(50) AS BEGIN DECLARE @RTNVALUE VARCHAR(50), @STRLEN INT, @POS INT; SET @POS = CHARINDEX('@', @STR); IF @POS = 0 BEGIN SET @RTNVALUE = @STR; END; ELSE BEGIN IF @POS
▶[MS-SQL] NAME 이름 MASKING 마스킹 -- 함수생성 CREATE FUNCTION [dbo].[FN_MASK_NAME] ( @STR VARCHAR(50) ) RETURNS VARCHAR(50) AS BEGIN DECLARE @RTNVALUE VARCHAR(50), @STRLEN INT; IF LEN(@STR) = 2 BEGIN SET @RTNVALUE = LEFT(@STR, 1) + '*'; END; ELSE IF LEN(@STR) >= 3 BEGIN SET @STRLEN = LEN(@STR) - 2; SET @RTNVALUE = LEFT(@STR, 1) + REPLACE(SPACE(@STRLEN), ' ', '*') + RIGHT(@STR, 1); END; ELSE BEGIN SET @R..
▶Table 별 용량 및 Row 수 조회 -- 테이블별 사용 용량 SELECT table_name = convert(varchar(30), min(o.name)) , table_size = ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024.,15,0) + 'KB') FROM sysindexes i INNER JOIN sysobjects o ON (o.id = i.id) WHERE i.indid IN (0, 1, 255) AND o.xtype = 'U' GROUP BY i.id -- 용량별 소팅 SELECT table_name = convert(varchar(30), min(o.name)) , table_size = convert(int, ltrim(str(s..
메시지 2714, 수준 16, 상태 5, 줄 1 데이터베이스에 'test_table'(이)라는 개체가 이미 있습니다. MSSQL 로 create table 쿼리문을 통하여 테이블을 생성하는 경우가 종종 있습니다. 아래 쿼리문을 통하여 만들면 위와 같은 에러가 날것입니다. 무엇이 문제지 필드를 잘못선언했나 찾아봐도 모르겠습니다. USE [TEST] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[TEST_TABLE]( [STR_CD] [varchar](10) NOT NULL, [MOV_1_FROM] [varchar](10) NOT NULL, [MOV_1_TO] [varchar](10) ..
MSSQL 쿼리 최적화 CONVERT의 위력 기존에 잘되던 쿼리가 늦어져서 쿼리 성능에 대한 부분을 찾아보게 되었다. 그중 하나 좋은부분있어서 소개한다 무려 96:4의 비율로 속도가 빨라짐을 느낄수 있다. 주로 날짜형식으로 varchar 인경우 잘되는거 같다. 기본 VARCHAR 는 별 영향이 없는듯.. ▶CONVERT 검색할 값의 데이터 형식을 바꿔주는 것 실제 테이블 컬럼의 데이터 형식과 일치하게 검색하기 -- 기존쿼리 SELECT SD.PRD_CD AS PRD_ID , SUM(SD.SL_QY) AS SALE_QTY FROM POS_SL_ITM SD WITH(READUNCOMMITTED) WHERE SD.STD_DATE BETWEEN DATEADD(M, -1, CONVERT(DATE, '2019-02..
MSSQL 락(lock) 걸린 쿼리 확인하기 정말 이유없이 잘되던 쿼리가 안되는 경우가 있습니다. 이에 확인 가능한 쿼리입니다. ▶EXEC sp_lock LOCK 걸린 spid 검출 MODE 필드에 S로 나오는 것이 정상 MODE 필드에 X로 나오는 것이 LOCK EXEC sp_lock ▶dbcc inputbuffer(20) LOCK 걸린 spid를 입력하면 현재 돌고 있느 쿼리가 출력됩니다. dbcc inputbuffer(20) ▶kill 20 LOCK을 발생시키는 spid를 종료시킵니다. kill 20
[MSSQL] Table 별 용량 및 Row 수 조회 ▶Table 별 용량 및 Row 수 조회 테이블별 사용 용량 용량별 소팅 테이블별 Row 수 -- 테이블별 사용 용량 SELECT table_name = convert(varchar(30), min(o.name)) , table_size = ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024.,15,0) + 'KB') FROM sysindexes i INNER JOIN sysobjects o ON (o.id = i.id) WHERE i.indid IN (0, 1, 255) AND o.xtype = 'U' GROUP BY i.id -- 용량별 소팅 SELECT table_name = convert(varcha..
MSSQL MERGE (DML을 한번에) ▶MERGE단일 문에서 여러 DML 작업이 가능하다. 데이터 처리되는 횟수도 최소화되고, 쿼리 성능이 향상된다. MERGE INTO 변경할테이블 AS TARGET USING DUAL ON TARGET.STD_DATE = #{STD_DATE} AND TARGET.STR_CD = #{STR_CD} AND TARGET.POS_NO = #{POS_NO} AND TARGET.BILL_NO = #{BILL_NO} AND TARGET.LINE_SEQ = #{LINE_SEQ} WHEN MATCHED THEN -- 일치할때 쿼리문 UPDATE SET STD_DATE = #{STD_DATE} ,STR_CD = #{STR_CD} ,POS_NO = #{POS_NO} ,BILL_NO =..
MySQL DDL 조회 방법 -테이블 조회1SHOW TABLES; -원하는 테이블 생성문(script) 뽑아내기123SHOW CREATE TABLE 테이블명; SHOW CREATE TABLE account; -위의 방법으로 VIEW (뷰) 생성 스크립트도 뽑아낼 수 있음123SHOW CREATE TABLE 뷰이름; SHOW CREATE TABLE account_VIEW; -함수 목록 조회1SHOW FUNCTION STATUS; -원하는 함수의 생성문(script) 뽑아내기1SHOW CREATE FUNCTION 함수이름; -프로시저 조회1SHOW PROCEDURE STATUS; -원하는 프로시저의 생성문(script) 뽑아내기1SHOW CREATE PROCEDURE 프로시저이름; -트리거 목록조회1SHOW..
MSSQL 변수를 활용한 반복문 만들기, (TRY, CATCH 이용) 갑자기 SELECT CONVERT(VARCHAR, getdate(), 1) 이부분이 몇번까지 되는지 알아보고 싶어졌다. 그래서 반복문과 try, catch 문을 같이 활용하여 만들어 보았다. try, catch 를 같이 쓴이유는 없이하면 SELECT CONVERT(VARCHAR, getdate(), 28) 위 쿼리부분등에서 에러나서 반복문이 멈춘다. DECLARE @id INT SET @id = 29 WHILE(@id < 50) BEGIN BEGIN TRY SELECT CONVERT(VARCHAR, getdate(), @id) -- END END TRY BEGIN CATCH -- 아무것도 하기 싫다. END CATCH; SET @id ..
MSSQL GETDATE() CONVERT 변환 ▶CONVERT getdate()를 varchar로 convert 할때, 세번째 인자에 숫자를 넣는데 어디까지 있나 궁금하여 한번 다 돌려보았다 2019년 02월 22일 기준 SELECT CONVERT(VARCHAR, getdate(), 1) -- 02/22/19 SELECT CONVERT(VARCHAR, getdate(), 2) -- 19.02.22 SELECT CONVERT(VARCHAR, getdate(), 3) -- 22/02/19 SELECT CONVERT(VARCHAR, getdate(), 4) -- 22.02.19 SELECT CONVERT(VARCHAR, getdate(), 5) -- 22-02-19 SELECT CONVERT(VARCHAR,..
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |