본문 바로가기
반응형

IT/MS SQL15

락 확인, 테이블 정보 검색, 프로시저등에서 내용 검색... 락확인, 테이블 정보 검색, 프로시저등 내용 검색... 할수 있는 쿼리들입니다. 약간에 수정 필요할수 있음. 마이바티스 CRUD자동 생성 쿼리는 여기서 확인. MsSql mybatis ,ibatis에 사용가능한 쿼리 자동 생성 스크립트 2022. 10. 26.
MSSQL 한글 검색이 안되는경우 ( Varchar 와 nVarchar의 차이 ) SELECT * FROM tblName WHERE Name = '아무개' 이럴경우 검색이 안되고 영문만 검색되는 경우가 있습니다. 다음과 같이 검색할 문자열 앞에 N을 붙여주시면 Encoding이 UNICODE로 유지됩니다. SELECT * FROM tblName WHERE Name = N'아무개' Name 컬럼이 nVarchar이기 때문이다. "MSSQL 의 Varchar와 nVarchar의 차이" MSSQL 에서 테이블 설계 시 컬럼 데이터타입 중 Varchar 와 nVarchar 모두 생성이 가능하도록 되어있습니다. 둘 다 문자열을 저장하는 데이터 타입이지만, Varchar는 1개의 한글 문자는 2바이트, 1개의 영문 문자는 1바이트를 사용하고, nVarchar는 한글 영문 상관없이 1개의 문자당 .. 2022. 10. 17.
MSSQL 임시테이블 # ##, 테이블변수 @ 차이와 사용방법 출처:[islove8587님의 블로그] https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=islove8587&logNo=220608680181 [MSSQL] 임시 테이블 vs 테이블 변수 1. 임시 테이블 (1) 설명 - 임시 테이블의 테이블 이름은 숫자 기호(#)로 시작한다. - 사용자가 연결이 끊... blog.naver.com 출처: [금백조의 개발 블로그:티스토리]https://goldswan.tistory.com/10 [MSSQL]SELECT INTO문을 통한 임시테이블 생성(SELECT INTO절) 서론 평소에 임시 테이블을 생성할 시 CREATE DDL문을 직접 작성하여 생성했었습니다. 그런데 다른 분이 작성하신 쿼리를 .. 2022. 7. 21.
MSSQL 프로시저 총정리 출처 : https://gameserverengineer-k.tistory.com/7 저장 프로시저(Stored Procedure)란 무엇인가? SQL Server에서 제공되는 프로그래밍 기능. 즉, 쿼리문의 집합으로써, 어떠한 동작을 일괄 처리하는 용도로 사용된다. 저장 프로시저의 정의 형식 1 2 3 4 5 6 7 8 9 10 11 12 13 14 --Transact-SQL Stored Procedure Syntax CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] [ { @parameter [ type_schema_name. ] data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT .. 2022. 7. 21.
MSSQL 개발시 유의 또는 참고 사항 오라클로 개발하다 가끔 MSSQL을 개발하게 되면 당황스러운 경우가 생겨 몇가지 정리해둔다. 1. WITH(NOLOCK) 개발 프로젝트마다 다를수 있지만 , 내가 투입됐던 모든 프로젝트에서는 의무적으로 SELECT문에 무조건 WITH(NOLOCK)을 걸었다. 아마도 모든 프로젝트가 그러할거 같다. 사용법은 간단하다, SELECT시 그냥 테이블명 옆에 WITH(NOLOCK)을 명시해주면 된다. 자세한 설명은 밑에 참고. https://heavenlake.tistory.com/128 MSSQL WITH(NOLOCK) , SELECT시 잠금무시 MSSQL 은 기본적으로 SELECT 시 공유잠금(S Lock) 이 걸린다. 이는 MSSQL 의 기본 격리수준(Isolation Level) 이 Read Committ.. 2022. 7. 21.
MSSQL 형변환 오류 벗어나기 TRY_CONVERT TRY_CONVERT : CONVERT 시에 나오는 모든 에러를 NULL로 처리하여 반환한다. 가끔 데이터 형변환을 하거나 타입별로 형변환을 처리하는데 기존 데이터가 해당하는 타입에 맞지 않는경우 에러를 뱉어 내며, 해당하는 데이터를 찾는건 매우 힘든 일이다. (ex: convert(date,'1') 과 같이 특정 문제가 되는 데이터를 찾아서 바꿔줘야하는데 데이터가 몇십만건이 될 경우 잡아내기 매우 힘듬..) 고로 TRY_CONVERT를 사용하여 해당하는 데이터는 무시하여 정보를 추출하도록 한다. 단, TRY_CONVERT의 경우 MS SQL 2005버전 부터 지원하며 지금 현재 나의 데이터베이스가 2005 버전 이전에서 만들어졌고, 해당하는 데이터베이스를 2016등의 버전에 IMPORT할 경우 호환성 .. 2022. 7. 21.
MSSQL WITH(NOLOCK) , SELECT시 잠금무시 MSSQL 은 기본적으로 SELECT 시 공유잠금(S Lock) 이 걸린다. 이는 MSSQL 의 기본 격리수준(Isolation Level) 이 Read Committed 이기 때문이다. 즉, DML(INSERT, UPDATE, DELETE) 작업중인 ROW 또는 TABLE 에 SELECT 할 경우, 해당 작업이 끝나야 SELECT 할 수 있다는 의미이다. 만일 이렇게 수행된다면 DB의 성능은 떨어지고, 데드락(Deadlock) 이 발생될 수 있다. 이를 방지하기 위해 WITH(NOLOCK) 을 사용할 수 있다. WITH(NOLOCK) 의 격리수준(Isolation Level)은 Read Uncommitted 와 같다고 보면 된다. 즉, SELECT 할 ROW 또는 TABLE 이 잠겨있어도(작업중이여도).. 2022. 7. 21.
MSSQL 형변환 방법 CONVERT와 CAST MSSQL에서 사용되는 데이터 타입 변환 함수는 CONVERT함수와 CAST함수입니다. 두 함수 다 하나의 유형에서 다른 유형으로 데이터를 변환하는 데 사용합니다. 쓰는 방식만 조금 다르고 하는 일은 같습니다. 자세한 설명은 해당 사이트에 있으니 참조하시기 바랍니다. Conver함수와 Cast함수 사용링크 Convert 개인적으로 가장 많이 사용하는 데이터 변환 함수라고 생각합니다. 날짜 변환하는데도 유용하게 사용 가능합니다. 참고로 부동 소수점 또는 숫자에서 정수로 변환할 때 CONVERT() 함수는 결과를 자르고 다른 변환일 경우에는 반올림합니다. 사용법 --문법-- CONVERT(data_type[(length)], expression[style]) --예시-- SELECT CONVERT(NVARC.. 2022. 7. 21.
MS SQL CRUD 자동 생성 프로시저 쿼리 프로그램을 개발하다보면, 반복적으로 CRUD SQL문을 작성하는 경우가 많다. 시간을 어느정도 절약 할 수 있도록 공유된 프로시저를 이용하면 기본 SELECT, INSERT, UPDATE, DELETE 문을 만들어주기에 개발속도 및 개발 효율성을 증가 시킬 수 있다. -- EXEC [dbo].ZZZ.PROCEDURE_CREATOR '첫번째파라미터','두번째파라미터','세번째파라미터' 첫번째파라미터 => Database 테이블명 두번째파라미터 => 프로시저 생성자이름 세번째파라미터 => 프로시저에 대한 설명 공통문 CRUD 자동 스크립트 -- ============================================= -- AUTHOR: ProSungsiler -- CREATE DATE: 2019-0.. 2022. 7. 21.
mssql ssms 단축키 지정하기 도구 -> 옵션->환경->키보드-> 쿼리 바로가기 위와 같이 특정 키를 지정해 놓고 단축키로 사용가능합니다. 사용법은 쿼리창에서 테이블명 등을 블럭으로 선택하고 위에 설정한 단축키를 누르면 실행됩니다. 2020. 6. 10.
Collation 충돌 에러 해결하기 System.Data.SqlClient.SqlException: equal to 작업에서의 "Korean_Wansung_CI_AS"과(와) "SQL_Latin1_General_CP1_CI_AS" 간의 데이터 정렬 충돌을 해결할 수 없습니다. 간혹 위와 같은 에러를 만날수 있다.보통 다른 DB간에 join인등을 할 때 나 SubQeury로 사용 할 때 발생하곤한다. 원인은 Collation이 서로 다르기 때문에 나타나는 증상이다.각DB에 Collation확인은 DB속성에 일반 -> 데이터 정렬을 보면 해당 DB에 Collation을 알수있다. 해결 방법은 상황1) 단순 조회시 아래와 같이 조건문 옆에 COLLATE를 수동으로 지정해줘서 COLLATE를 맞춰주면 된다. SELECT 1 FROM TABLE A.. 2020. 6. 10.
mssql Lock 확인 및 대처 조회 결과가 지나치게 안나올 때 한번쯤은 확인해 봐야할 Lock.... 확인 방법을 알아 보겠습니다. 1. lock확인 명령어 EXEC SP_LOCK => mode 부분이 X표시된 것이 LOCK걸린거라 볼수 있다. 2. lock을 찾았다면 어떦쿼리 인지도 확인 가능하다. 위에서 찾은 lock에 spid를 넣어주면 된다. DBCC INPUTBUFFER(spid) 3. lock 하늘나라로 보내드리기 KILL spid -- 참고 EXEC SP_LOCK 으로 확인하다 보면 너무 많아서 찾기 힘들 때가 있다. 그럴 때는 그냥 LOCK가 위심 되는 쿼리만 뽑을수 있다. SELECT p.status ,p.program_name ,p.hostname ,p.spid ,p.blocked ,p.kpid ,p.cpu ,p.p.. 2020. 6. 5.
mssql 프로시저 내용 검색 해보기 개발하다보면 테이블 수정등으로 영향이 갈수 있는 프로시저와 펑션 찾을 때 유용하게 쓸수 있다. -- 프로시저와 펑션 동시에 찾기 SELECT ROUTINE_TYPE, ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE IN ('FUNCTION','PROCEDURE') AND ROUTINE_DEFINITION LIKE '%PLNT%' ORDER BY ROUTINE_TYPE -- 프로시저 같은 경우 밑에와 같이 찾을수도 있다. SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id) FROM sys.procedures WHERE OBJECT_DEFINITION.. 2020. 6. 5.
MsSql 테이블 컬럼 정보 및 컬럼설명(description) 가져오기 테이블에 컬럼정보 및 컬럼설명(description)을 갖어 올수 있다. DECLARE @TABLE_NAME NVARCHAR(50) = 'sysdiagrams'; SELECT D.COLORDER AS COLUMN_IDX -- Column Index , A.NAME AS TABLE_NAME -- Table Name , C.VALUE AS TABLE_DESCRIPTION -- Table Description , D.NAME AS COLUMN_NAME -- Column Name , E.VALUE AS COLUMN_DESCRIPTION -- Column Description , F.DATA_TYPE AS TYPE -- Column Type , F.CHARACTER_OCTET_LENGTH AS LENGTH -- .. 2020. 6. 5.
mssql 쿼리 개발 프로그램 소개 - HeidiSql MsSql 은 SSMS(SQL Server Management Studio)로만 실행 가능한걸로 아시는 분이 많은데요.이번에 소개 시켜 드릴 프로그래은 무료버전으로 SSMS에 단점을 조금은 완화시켜줄만한프로그램입니다. HeidiSQLhttps://www.heidisql.com/download.phpDownload HeidiSQLAds were blocked - no problem. But keep in mind that developing HeidiSQL, user support and hosting takes time and money. You may want to send a donation instead. Download HeidiSQL 11.2, released on 24 Jan 2021 Inst.. 2020. 6. 5.
반응형