MSSQL에서 select 할때 테이블 뒤에 with(nolock)을 주면 공유잠금을 걸지 않고 바로 조회를 한다 MSSQL은 기본적으로 select 할때 공유잠금이 걸린다. insert, update, delete 실행하면 select 선생 작업이 모두 끝날때까지 lock이 걸린다 그래서 with(nolock) 추가 하는데... select *from table1 with(nolock) 매번 테이블이 with(nolock)을 입력하기 귀찮다 프로시저 생성할때 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 구문을 추가하면 with(nolock)을 추가 안해도 된다 create procedure 프로시저_이름1 as SET TRANSACTION ISOLATION L..
1. 권한이 높은 계정으로 로그인 한 후2. 새 쿼리창에서 아래 쿼리문을 작성하고 실행한다. use DB이름 ALTER USER 로그인아이디 WITH LOGIN = 로그인아이디 -- '입력 안한다. mssql 현재 데이터베이스에 사용자 그룹 또는 역할 이(가) 이미 있습니다 오류가 나는 이유는 해당 DB를 복원 했을때 간혹 발생하는 문제이다.
MSSQL 프로시저를 실행했는데 TOP 또는 FETCH 절에 잘못된 값이 있습니다. 메세지가 나왔다... 오류는 select TOP 쿼리문...에서 오류 1234declare @cnt intset @cnt = 1 select TOP(@cnt) getdate()cs 결과값이 잘나온다. 2번째 줄에서 @cnt에 값이 null 이면 오류가 발생한다
월의 마지막 날짜를 구하는 쿼리 2월의 마지막 날짜를 알고 싶으면select DATEADD(day, -1, convert(date, convert(varchar(6), '20190301', 112) + '01'))결과값 : 2019-02-28 mssql 2012버전 이상에서는select datepart(dd, eomonth(cast('2019-02-01' as datetime)))결과값 : 28 어때요? 참 쉽죠~? 끝
이번에 mssql 2017 버전을 사용했다. 이전에 mssql 2014 에서 사용하던 테마를 적용하려고 했는데 2017에서 안되서 계속 흰색 바탕화면에 쿼리를 작업하는데 눈이 너무 아프다; 테마 변경하는 방법을 찾아서 그대로 해봤는데 된다. 1. 메모장을 관리자 권한으로 실행2. 메모장을 열고 찾기에서 ManagementStudio 가 설치된 폴더에서 ssms.pkgundef 파일 열기.3. 아래 그림에 빨간색 박스 안에 있는 내용을 삭제하고 저장4. mssql을 실행하고 도구>옵션에서 환경 > 일반에서 색 테마를 확인하면 '어둡게' 가 추가되어 있다. 출처 : https://www.c-sharpcorner.com/article/trick-to-use-dark-theme-in-sql-server-mana..
select replace(replace(convert(varchar(max), 컬럼명), char(13), ''), char(10), ' ')
예제이다 DECLARE @CHAEG_USER NVARCHAR(20) UPDATE TB_USERSET @CHAEG_USER = USER_NAME --변경전 데이터 : 홍길동 , USER_NAME = '홍길동1'WHERE IDX = 1 SELECT @CHAEG_USER -> 결과값 : '홍길동' 변경을 하기전에 변경전 데이터와 변경된 데이터를 확인 하고 싶었다. 그래서 그냥 생각난데로 해봤는데 된다;;; 이 문법이 맞는건지 확인하고 싶어서 회사 DB팀장님께 여쭤보니 틀린 문법은 아니며 맞다고 하셨다 그러면 테이블에서 업데이트를 실행 후에 결과값 보여줄때 UPDATE 실행 하고 SELECT 구문 입력 안하고 UPDATE 구문에서 변수 선언해서 선언한 변수 값을 SELECT 하면...음...편할거 같은데 UPD..
금액을 콤마(,) 구분으로 1천조 (1000000000000000) 가 넘어가면 오류가 발생한다. 테스트한 쿼리문 declare @aaa bigint set @aaa = 1000000000000000 select isnull(replace(convert(varchar, convert(money, @aaa), 1), '.00', ''), 0) mssql 에서 format 함수를 사용하면 위에 오류는 해결 가능하다. declare @aaa bigint set @aaa = 1000000000000000 select FORMAT(@aaa,'###,###,###,###,###,###,###,###,###,###,###,###,###,###,###,###,###,###,###') 테스트로 금액을 더 넣어봤는데 오류..
mssql 로그인 하는 계정에 기본 DB를 설정해서 사용했다. 어떤 이유로 기본 설정한 DB를 삭제 했고 다시 로그인 시도를 했는데... 4064 오류가 나왔다...;; 해결 방법은 로그인 할때 하단에 옵션을 클릭하고~ 다음 '연결 속성' 탭에서 연결할 데이터베이스에 기본값에 클릭하면 입력 할 수 있는데 여기에 master로 입력하면 된다. 어때요~? 참 쉽죠~? 끝~
IDENTITY_INSERT가 OFF로 설정되면 테이블 'TABLE_1'의 ID 열에 명시적 값을 삽입할 수 없습니다. 오류가 발생했다. 확인 결과... 자동증가열될 컬럼에 값을 넣을려고 해서 오류가 발생함. 자동증가열 설정을 예 > 아니오로 변경하던가.insert 할 때 자동증가열 컬럼에 값을 안넣으면 된다. 어때요~? 참 쉽죠~? 끝~
Create Table TB_1(seq int identity(1,1), id varchar(50), name varchar(20), primary key clustered(seq, id)) 어때요~? 참 쉽죠~? 끝~
select replace(내용, char(10), ' ') from table replace 함수의 인수 1에 대한 인수 데이터 형식 text이(가) 잘못되었습니다. 오류가 나왔다...음... DB 줄바꿈 태그를 넣을려고 했던건데...;; 검색해 보니깐 text, ntext 타입에서 오류가 나온다고 함. 그래서 쿼리문을 수정했다. select replace(convert(text, 내용) char(10), ' ') from table convert를 text로 했는데 똑같이 나오면 convert(varchar(max), 내용) 으로 바꿔서 고고 어때요~? 참 쉽죠~? 끝~
set identity_insert dbo.테이블명 on insert 테이블명(idx, aData, bData, cData, reg_date) values(1005, 'a', 'b', 'c', getdate())set identity_insert dbo.테이블명 off set identity_insert on 실행 다음에데이터를 넣을때 컬럼명 지정하시고 insert 하시면 잘 됩니다. 어때요~?참 쉽죠~?끝~!
금액을 , 구분으로 표현할 때 사용 declare @moneyintset @money = 10000 select replace(convert(varchar, convert(money, @money),1), '.00', '') 어때요~? 참 쉽죠~? 끝~
mssql 에서 try catch 로 애러를 체크를 하는데 나는 애러가 났을 경우에 애러에 대해서 조치를 취하고 나서 while문 만큼 진행이 되야 한다. while 1 < 1000beginbegin tryinsert 구문~~~~end trybegin catch--SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_MESSAGE() AS ErrorMessage; --애러확인문--애러 발생시 조치사항set @i = @i - 10end catchend 끝~
Copyright © 2016 by WaaNee. All Rights Reserved.