SQL 에서 SELECT 혹은 EXEC 와 같이 조회나 프로시저 실행 시 락에 걸려 우너하는 결과를 얻지 못하는 경우가 발생한다. 이때 락 걸린 프로세스를 종료하는 방법이다. 1. SP_LOCK & SP_WHO2 현재 락 걸린 세션 ID를 확인할 수 있도록 SP_LOCK를 제공합니다. 또 다른 함수로는 SP_WHO2 도 제공됩니다. EXEC SP_LOCK EXEC SP_WHO2 실행하면 위와 같은 결과가 나오는데 Mode 컬럼에 X 인 경우가 현재 락이 걸린 세션입니다. BlkBy 컬럼에 값이 있다면 락이 걸린 세션입니다. 락이 걸린 세션을 확인했다면 해당 세션ID (SPID) 를 확인하여 해당 세션을 종료시켜주면 됩니다. KILL (SPID) 다시 조회하면 락이 풀린 것을 확인할 수 있습니다. http..
프로시저 내부의 문자열을 검색하는 방법은 과거 포스팅도 했듯 sys.syscomments로 간단하게 할 수 있다. https://kaiaphas.tistory.com/55 [MS-SQL] 프로시저 문자열 검색 수 많은 프로시저들 중에서 테이블이나 프로시저를 검색할 때 사용하는 SELECT 문이다. 이것말고도 몇가지 방법이 더 있긴 한데... 그냥 이게 가장 간단해서 애용하는 방법이다. SELECT DISTINCT OBJECT_N kaiaphas.tistory.com 하지만... 그렇다고 한다. 뭐 어쨌든 기능이 삭제되니 아래 sql_modules 로 변경하라는 뜻 같다. 하여 아래 내용으로 다시 포스팅 한다. 문자열 검색 SELECT sm.object_id , OBJECT_NAME(sm.object_id..
CHARINDEX() 함수는 두 번째 문자 내에서 첫 번째 제공된 문자를 찾아 위치를 반환한다. CHARINDEX charindex( expressionToFind , expressionToSearch [ , start_location ]) return int; CHARINDEX 를 이용하여 문자열 자르기 declare @t1 table ( idx int identity (1,1) not null, itemname varchar(30) ) -- t1 테이블 생성 insert into @t1 values ('안녕하세요#안녕하세요') insert into @t1 values ('반갑#습니다') -- t1 테이블에 데이터 입력 select charindex('#',itemname) as idx, left(it..