본문 바로가기

DBMS/SQL Server

(95)
[SQL Server] 문자열 합치기 USE tempdb GO -- 테스트 테이블 생성 CREATE TABLE dbo.HOBBY_TBL ( USERID VARCHAR(25) , HOBBY VARCHAR(30) ) GO -- 테스트 데이터 입력 INSERT INTO dbo.HOBBY_TBL (USERID, HOBBY) VALUES ('ABC', '축구') , ('ABC', '독서') , ('ABC', '게임') , ('APPLE', '등산') , ('APPLE', '농구') GO -- 테이블 조회 SELECT * FROM dbo.HOBBY_TBL GO -- 문자열 합치기 (DISTINCT 사용) SELECT DISTINCT USERID , STUFF (( SELECT ',' + HOBBY FROM dbo.HOBBY_TBL WHERE USERI..
[SQL Server] 프로시저 캐시 지우기 및 버퍼 메모리 비우기 -- 버퍼 메모리 비우기 dbcc dropcleanbuffers -- 프로시저 캐시 지우기 dbcc freeproccache
[SQL Server] DBCC CHECKIDENT 를 사용한 IDENTITY 값 초기화 IDENTITY 컬럼의 시작 값을 초기화 해야할 때 DBCC CHECKIDENT 명령을 사용하여 초기화 할 수 있다. -- 현재 IDENTITY 값 확인 DBCC CHECKIDENT('IDENT_TABLE', NORESEED) DBCC CHECKIDNET('테이블명', NORESEED) 는 테이블의 현재 IDENTITY 값을 확인하는 명령어이다. -- IDENTITY 값 변경 DBCC CHECKIDENT('IDENT_TABLE', RESEED, 1000) DBCC CHECKIDENT('테이블명', RESEED, 초기화 값) 는 현재 값으로 사용할 새 값으로 초기화하는 명령어이다. 위의 경우 현재 값을 1000으로 초기화함으로써 새 값을 추가하면 1001이 삽입된다.
[SQL Server] SCOPE_IDENTITY(), IDENT_CURRENT(), @@IDENTITY 테이블에 자동증가 컬럼의 값이 추가되었고, 증가된 값을 반환하고 싶은 경우 SCOPE_IDENTITY(), IDENT_CURRENT(), @@IDENTITY 함수를 사용하여 원하는 값을 얻을 수 있다. 세 함수는 자동증가 컬럼에 삽입된 값을 반환하기 때문에 비슷한 함수이지만, 차이점이 있어 주의해서 사용해야 한다. 아래의 결과를 보면 같은 값을 반환한다. CREATE TABLE dbo.TEST_TBL ( COL1 INT IDENTITY(1,1) , COL2 VARCHAR(10) ) GO INSERT INTO dbo.TEST_TBL (COL2) VALUES ('ABC') INSERT INTO dbo.TEST_TBL (COL2) VALUES ('DEF') INSERT INTO dbo.TEST_TBL (COL..
[SQL Server] 저장 프로시저 일괄 실행 권한 주기 한 데이터베이스의 모든 저장 프로시저에 대해서 특정 계정에 실행 권한을 줘야할 일이 있다. 한 개씩 클릭이나 명령어로 실행 권한을 줄 수도 있지만, 다음 쿼리를 이용하면 모든 저장 프로시저에 대해 특정 계정에 권한을 주는 스크립트가 생성된다. 이 스크립트를 복사하여 실행만 하면 일괄로 권한을 줄 수 있다. DECLARE @ACCOUNT VARCHAR(100) SET @ACCOUNT = 'TEST_ACCOUNT' SELECT 'GRANT EXECUTE ON ' + name + ' TO ' + @ACCOUNT FROM sys.procedures 조금 응용해서 WHERE 절을 이용하여 원하는 저장 프로시저에만 권한을 주는 스크립트를 생성할 수 있다. 아래의 예제는 ABC로 시작하는 저장 프로시저에 대해서만 스..
[SQL Server] AWE 옵션 SQL Server는 32비트 버전의 Microsoft Windows 운영체제에서 실제 메모리를 4GB 이상 사용할 수 있도록 하는 AWS(Address Windowing Extensions)를 지원한다. 최대 64GB의 실제 메모리가 지원된다. 표준 32비트 주소는 최대 4GB의 메모리를 매핑할 수 있다. 따라서 32비트 프로세스의 표준 주소 공간은 4GB로 제한된다. 기본적으로 32비트 Microsoft Windows 운영체제에서 2GB는 운영체제용으로 예약되고 2GB를 응용 프로그램에서 사용할 수 있다. AWE는 SQL Server Enterprise, Standard 및 Developer 버전에서만 지원되며 32비트 운영체제에만 적용된다. AWE를 사용할 수 있게 설정하는 방법은 다음과 같다. s..
[SQL Server] 성능 모니터에 SQL Server 성능 카운터가 나타나지 않을 때 성능 모니터에서 SQL Server 성능 카운터 정보를 수집하려는데 관련 성능 카운터가 보이지 않는다. SQL Server 도 설치된 상태이다. 운영체제는 64비트인데 SQL Server는 32비트로 설치되어 있는게 원인이다. 해결하기 위해선 실행창에서 perfmon.msc mmc.exe /32 를 실행하면 된다. 1. 성능 모니터에서 SQL Server 성능 카운터가 보이지 않는다. 2. 실행창에서 perfmon.msc mmc.exe /32 실행 3. SQL Server 성능 카운터가 보인다.
[SQL Server] 변수를 사용한 LIKE 검색 -- 테스트 테이블 생성 CREATE TABLE dbo.TEST ( COL1 INT IDENTITY(1,1) NOT NULL , COL2 VARCHAR(10) NOT NULL ) GO -- 테스트 데이터 입력 INSERT INTO dbo.TEST(COL2) VALUES ('라이크검색') GO -- 일반적인 LIKE 검색 SELECT * FROM dbo.TEST WHERE COL2 LIKE '%라이크%' -- 잘못된 변수를 사용한 LIKE 검색 DECLARE @TEST VARCHAR(10) SET @TEST = '라이크' SELECT * FROM dbo.TEST WHERE COL2 LIKE '%@TEST%' GO -- 올바른 변수를 사용한 LIKE 검색 DECLARE @TEST VARCHAR(10) SET..