본문 바로가기

SQL Server

(82)
[SQL Server] 에러 메시지를 원하는 언어로 변경하기 해외 서버에서 작업을 하다보면 한글이 아닌 그 나라의 언어를 사용하는 경우가 있다. 특히 중국이나 대만 서버에서 작업을 할 때 한문이 나오면 정신이 혼미해진다. 에러 메시지를 원하는 언어로 변경하여 보자. 에러 메시지를 한문으로 보여주고 있다. 다음 명령어를 실행 후 확인해보면 에러메시지가 지정한 언어로 나오는 것을 볼 수 있다. -- 한국어 SET LANGUAGE KOREAN GO -- 영어 SET LANGUAGE ENGLISH GO -- 일본어 SET LANGUAGE JAPANESE GO -- 설정할 수 있는 언어가 저장된 테이블 SELECT * FROM MASTER.DBO.SYSLANGUAGES GO SET LANGUAGE는 권한에 제약이 없고, 현재의 세션에서만 적용된다. 참고 : http://m..
[SQL Server] FULL SCAN 하는 SP 찾기 XML플랜을 이용하여 캐시된 플랜 중 FULL SCAN 하는 SP를 찾는 방법에 대해 소개합니다. [성능 모니터 – FULL Scans/Sec] 위와 같이 운영하고 있는 서버에서 많은 FULL SCAN 수치가 보인다면, 해당 서버는 성능적으로 문제가 발생할 가능성이 있다고 생각해 볼 수 있습니다. 그렇다면 빠르고 쉽게 FULL SCAN하는 쿼리를 찾아 수정 하여야 할 것 입니다. 하지만, 기본적인 DMV로는 인덱스에 대한 SCAN 수에 대해서는 확인 할 수 있지만, SP에 대해서는 SCAN 여부 조차 확인 할 수 없습니다. 그래서 DMV로 확인 할 수 있는 XML플랜을 XQUERY를 사용하여 찾아보는 쿼리를 만들어 보았습니다. with XMLNAMESPACES ('http://schemas.microso..
[SQL Server] 모든 테이블의 Row Count 구하기 COUNT 함수를 사용하지 않고 모든 테이블의 Row Count 구하기 보통 테이블의 Row Count를 구하기 위해서 SELECT COUNT(*) FROM TABLE 과 같이 COUNT 함수를 사용해서 Count를 구하게 된다. 데이터베이스 내의 모든 테이블의 Row Count 가 필요할 때 일일이 COUNT 함수를 사용하여 Row Count를 구할 수도 있지만 COUNT 함수를 사용하지 않고 한번에 모든 테이블의 Row Count 를 구해보자. SELECT T.NAME [TABLENAME], SUM(ST.ROW_COUNT)[ROWCOUNT] FROM SYS.TABLES T INNER JOIN SYS.SCHEMAS S ON T.SCHEMA_ID = S.SCHEMA_ID INNER JOIN SYS.IND..
[SQL Server] SQLCMD(SQL Command) 사용하기 SQLCMD(SQL Command) 명령 프롬프트 상에서 SQL Server 서버에 접속해서 작업을 수행할 수 있도록 해 주는 도구 SSMS의 쿼리 창을 사용하지 않고, 명령 프롬프트에서 동일한 작업을 수행할 수 있다. SQLCMD.EXE를 실행하기 위한 옵션 sqlcmd [{ { -U login_id [ -P password ] } | –E trusted connection }] [ -N encrypt connection ][ -C trust the server certificate ] [ -z new password ] [ -Z new password and exit] [ -S server_name [ \ instance_name ] ] [ -H wksta_name ] [ -d db_name ] [ ..
[SQL Server] Job 정보 보기 SQL Server Job 정보 보기 SELECT NAME AS 'Job 이름' , DATE_CREATED AS 'Job 생성일' , ACTIVE_START_DATE AS '처음 Job 실행한 날짜' , NEXT_RUN_DATE AS '예약된 다음 Job 날짜' FROM MSDB.DBO.SYSSCHEDULES AS A INNER JOIN MSDB.DBO.SYSJOBSCHEDULES AS B ON A.SCHEDULE_ID = B.SCHEDULE_ID WHERE ENABLED = 1 -- 0:미사용, 1:사용 현재 사용하고 있는 Job 정보
[SQL Server] 로그인, 사용자 만들기 로그인, 사용자 만들기 -- 로그인 만들기 CREATE LOGIN TEST_LOGIN WITH PASSWORD = 'TEST_PASS' -- 사용자 만들기 CREATE USER TEST_USER FOR LOGIN TEST_LOGIN -- 로그인 없이 사용자 만들기 CREATE USER TEST_USER2 WITHOUT LOGIN
[SQL Server] 접속 아이피 구하기 접속 아이피 구하기 SELECT A.SPID, A.LOGINAME, A.LOGIN_TIME, A.LAST_BATCH , B.CLIENT_NET_ADDRESS FROM SYS.SYSPROCESSES AS A INNER JOIN SYS.DM_EXEC_CONNECTIONS AS B ON A.SPID = B.SESSION_ID
[SQL Server] 컬럼 추가, 수정, 삭제하기 컬럼 추가, 수정, 삭제하기 -- 컬럼 추가하기 ALTER TABLE dbo.TEST_TABLE ADD TEST_COLUMN CHAR(10) -- 컬럼 수정하기 ALTER TABLE dbo.TEST_TABLE ALTER COLUMN TEST_COLUMN CHAR(15) -- 컬럼 삭제하기 ALTER TABLE dbo.TEST_TABLE DROP COLUMN TEST_COLUMN ※ 컬럼 수정시 저장된 데이터 길이보다 작은 크기로 수정은 불가능하다. CHAR(10)을 CHAR(5)로 수정하려고 할 때 6바이트 이상의 데이터가 들어가 있으면 수정 불가 원래의 컬럼보다 크게 변경하는 것은 아무때나 가능