본문 바로가기

데이터베이스/MSSQL42

MS-SQL 날짜 컬럼 Between MS-SQ에서 날짜 컬럼을 Where(조건절)에서 Between하는 방법입니다. SELECT * FROM TableName where DateColumn BETWEEN '2016/11/08' and '2016/11/08 23:59:59.999' 2016. 11. 11.
MSSQL 쿼리 결과 XML로 변환하기 MSSQL에서 쿼리를 수행 후 나온 결과를 XML로 활용 할 때 사용하면 좋은 Tip입니다. 1. XML Node에 각 컬럼을 Attribute로 변환 - SELECT 쿼리 마지막에 FOR XML RAW('NodeName')를 하면 XML로 변환된다. [쿼리] SELECT * FROM INFORMATION_SCHEMA.TABLES FOR XML RAW('TABLE') [결과] 2. XML Root 지정하여 변환하기 - SELECT 쿼리 마지막에 FOR XML RAW('NodeName'), ROOT('RootName')를 하면 XML로 변환된다. [쿼리] SELECT * FROM INFORMATION_SCHEMA.TABLES FOR XML RAW('TABLE'), ROOT('TABLES') [결과] 3. .. 2016. 10. 27.
MSSQL UniqueIdentifier형 컬럼을 문자형으로 변환 UniqueIdentifier은 ID 컬럼 등에 활용하며, 값은 '00113E4C-0000-0000-0A31-FA8DFA551F04'와 같이 표시됩니다. UniqueIdentifier형을 문자형을 변환은 CONVERT 함수를 이요하면 됩니다. 아래의 쿼리를 참고하세요. -- id는 UniqueIdentifier형의 컬럼입니다. CONVERT(VARCHAR(36), id) 2016. 10. 27.
MSSQL 특정 문자 갯수 MSSQL에서 특정 문자의 갯수를 알 수 있는 쿼리입니다. 아래의 쿼리는 C:\WINDOWS\System32 문자 중 '\'의 갯수 찾는 쿼리입니다. SELECT LEN('C:\WINDOWS\System32') - LEN(REPLACE('C:\WINDOWS\System32', '\', '')) 2016. 8. 31.
MSSQL - 테이블, 뷰, 컬럼 정보 확인하기 MSSQL에서 테이블, 뷰, 컬럼 정보를 확인하는 쿼리입니다. -- Table 정보 SELECT * FROM INFORMATION_SCHEMA.TABLES -- View 정보 SELECT * FROM INFORMATION_SCHEMA.VIEWS -- Column 정보 SELECT * FROM INFORMATION_SCHEMA.COLUMNS 2016. 5. 13.
MSSQL DateTime을 특정 Format 문자로 변경하기 아래의 쿼리는 MSSQL에서 DateTime을 여러 Format 문자로 변경하는 쿼리입니다. 쿼리를 실행하면 여러 Format에 대한 정보를 확인 할 수 있습니다. 이것으로 자신이 필요한 Format으로 사용하면 될 듯 합니다. 참고 : https://msdn.microsoft.com/ko-kr/library/ms187928(v=sql.120).aspx [쿼리] SELECT 10, 'mm-dd-yy', CONVERT(VARCHAR, GETDATE(), 10) UNION SELECT 11, 'yy/mm/dd', CONVERT(VARCHAR, GETDATE(), 11) UNION SELECT 12, 'yymmdd', CONVERT(VARCHAR, GETDATE(), 12) UNION SELECT 23, 'y.. 2016. 2. 25.
MSSQL MDB, LOG 파일 기본 경로 얻기 MSSQL의 MDB, LOG 파일 기본 경로 얻는 쿼리입니다. declare @DefaultData nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @DefaultData output declare @DefaultLog nvarchar(512) exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @DefaultLog output declare @Def.. 2016. 2. 15.
MSSQL Log 파일 용량 축소하기(DBCC SHRINKFILE 방법) 아래의 쿼리는 Log 파일의 용량을 축소시키는 쿼리입니다. 해당 쿼리는 Log 파일을 1MB로 축소합니다. declare @db_name as nvarchar(max) declare @sql as nvarchar(max) declare @log as sysname select @db_name = DB_NAME() set @sql = 'ALTER DATABASE ' + @db_name + ' SET RECOVERY SIMPLE' exec(@sql) select [name], [recovery_model_desc] from sys.databases where [name] = @db_name select @log = [Name] from sys.database_files where type = 1 DBCC S.. 2016. 2. 15.
Collation(문자 정렬) 충돌 해결 방법 테이블의 컬럼의 Collation(문자정렬)이 서로 다른 경우 아래와 같이 오류가 발생합니다. Cannot resolve the collation conflict between "Korean_Wansung_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation. 1. 현재 데이터 베이스의 기본 Collation(문자정렬) 확인 하기 SELECT SERVERPROPERTY('collation') ※ MSSQL의 전체 Collation 조회하기 SELECT * FROM ::fn_helpcollations() 2. 컬럼에 특정 Collation(문자정렬)을 지정하여 테이블 생성하기 - 아래의 쿼리는 한글완성형으로 Collation(문자정렬)을 .. 2016. 1. 18.
MS SQL 버전 별 서비스팩 목록 MS SQL 버전 별 서비스 팩(SP)입니다. RTMSP1 SP2 SP3 SP4 SQL Server 2014 12.0.2000.8 12.0.4100.1 or 12.1.4100.1 SQL Server 2012 11.0.2100.60 11.0.3000.0 or 11.1.3000.0 11.0.5058.0 or 11.2.5058.0 11.0.6020.0 or 11.3.6020.0 SQL Server 2008 R2 10.50.1600.1 10.50.2500.0 or 10.51.2500.0 10.50.4000.0 or 10.52.4000.0 10.50.6000.34 or 10.53.6000.34 SQL Server 2008 10.0.1600.22 10.0.2531.0 or 10.1.2531.0 10.0.4000.0.. 2016. 1. 8.
MSSQL sa 계정 잠금 해제 MSSQL에서 sa 계정의 잠금 해제하는 방법입니다. 1. SQL Server Management Studio에서 Security > Logins에서 사용자를 확인 할 수 있습니다. 2. sa 계정을 선택 후 마우스 오른쪽을 클릭하여 팝업메뉴에서 Properties를 클릭합니다. 3. 속성화면에서 Status를 선택하고, Login의 Enabled 라디오버튼을 선택 후 Ok버튼을 클릭하면 sa 계정 잠금이 해제됩니다. 2016. 1. 5.
MSSQL 영문 대소문자 구분 검색하기. MSSQL은 기본적으로 대소문자를 구분하지 않습니다. 설치 때 언어 설정에서 지정 할 수 있는 것으로 알고 있지만, 디폴트로 설치를 하면 Where 절에서 대소문자를 구분하지 않고 검색이됩니다. 대소문자를 구분하여 검색하시려면 아래의 Where 절을 이용하시면 됩니다. -- Equal 조건 SELECT * FROM TABLE_NAME WHERE COLUMN_NAME COLLATE Korean_Wansung_CS_AS = 'Name' -- LIKE 조건 SELECT * FROM TABLE_NAME WHERE COLUMN_NAME COLLATE Korean_Wansung_CS_AS LIKE 'Name%' -- 정렬 SELECT * FROM TABLE_NAME ORDER By COLUMN_NAME COLLAT.. 2015. 11. 23.
MSSQL Export (내보내기 마법사 사용) 개발 때 데이타베이스 작업을 함께 하는 경우가 많습니다.로컬 데이타베이스에 생성한 데이타를 다른 장비에 Import하여 사용 할 때가 종종 있는데, 내 데이타베이스에서 특정 테이블의 데이타를 Export 받는 방법을 내보내기 마법사를 이용하여 사용하는 방법을 알아보겠습니다. 1. 데이타베이스를 선택 후 마우스 오른쪽을 클릭하여 팝업 메뉴를 열고, 팝업 메뉴의 Tasks > Export Data... 메뉴를 클릭합니다. 2. 가져오기 & 내려받기 마법사(Import and Export Wizard)에 대한 간략한 내용이 표시된다, Next를 클릭한다. 3. Next 버튼을 클릭한다.(필요에 따라서 Data Source, Server Name, Database를 지정한다.) 4. 내보내기 할 때 형식을 지정.. 2015. 11. 20.
MSSQL DB 파일(*.mdf, *.ldf) 이동하기 서버의 하드디스크 용량 등의 문제로 간혹 DB 파일을 물리적으로 이동해야 할 경우 있습니다. MS SQL의 DB 파일 인 *.mdf, *.ldf 파일을 C:에서 D:로 이동하는 방법입니다. 1.Microsoft SQL Server Management Studio에서 데이터베이스를 선택하고, 마우스 우측 버튼을 클릭하면 팝업 메뉴가 표시되며, Properties를 클릭합니다. 2. Database Properties의 좌측 상단의 메뉴 중 Files를 선택하여, 데이터베이스의 DB파일을 확인합니다. 3. 데이터베이스 파일을 Detach(분리) 합니다. sp_detach_db [ @dbname= ] 'database_name' [ , [ @skipchecks= ] 'skipchecks' ] [ , [ @ke.. 2015. 9. 15.
MSSQL - 프로시저, 함수 내용 보기 프로시저 또는 함수의 내용을 검색하는 쿼리입니다. 특정 테이블 또는 뷰를 사용하고 있는 프로시저나 함수를 찾는데 도움이 됩니다. SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' OR ROUTINE_TYPE = 'FUNCTION' ORDER BY ROUTINE_NAME [실행 결과] 2015. 7. 9.
MSSQL - Like 문에 정규식 사용하기 MSSQL에서는 Like문에 정규식을 사용 할 수 있어 다양하게 데이타를 검색이 가능합니다. Like문에 "[" 와 "]" 사이에 정규식을 사용할 수 있으며, 아래에 몇가지 예를 소개하겠습니다. 1. 소문자와 대문자 영어로 시작하는 데이타 조회 - 정규식 : [a-zA-Z] - LIKE 조건 : [a-zA-Z]% with test(test_text) as ( select 'Korea' union select '12345' union select '.Net 2010' union select '10 years ago' ) select * from test where test_text like '[a-zA-Z]%' 2. 소문자와 대문자 영어로 시작하지 않는 데이타 조회 - 정규식 : [^a-zA-Z] - LI.. 2015. 5. 28.
MSSQL - Index Rebuild (인덱스 리빌드) 쿼리 인덱스 리빌딩은 데이터베이스에 많은 데이터가 오랜기간동안 쌓였을 경우 쿼리를 실행하면 속도가 늦어지는 경우가 발생합니다. 실행계획은 분석하여 인텍스를 정확하게 수행이 되더라도 속도 개선이 안될 경우 인덱스를 리빌드하여 다시 수행하면 속도 개선의 효과를 볼 수도 있습니다. 즉, 하드디스크의 조각 모음을 수행하여 컴퓨터 속도를 향상시키는 것처럼 하나의 인덱스의 데이터가 분산된 것을 디스크상에 뭉쳐주는 역할을 하여 속도 개선이 이루어진다. DECLARE @i int, @sql varchar(1000) DECLARE @tablename varchar(1000),@ownerName varchar(1000) SET @i = 1 DECLARE DB_Cursor CURSOR FOR SELECT TABLE_SCHEMA,.. 2015. 4. 15.
MSSQL - 16진수( HEX) 문자 숫자로 변경 숫자를 16진수로 문자로 변경하는 쿼리 예제입니다. SELECT CONVERT(int, CONVERT(varbinary, '0xFF', 1)) 2015. 4. 15.
MSSQL - sysadmin role 복구하기 실수로 사용자의 "sysadmin" Role을 제거하는 경우 복원하는 방법입니다. 1. MS-SQL을 중지합니다. 2. Command Prompt를 관리자 모드로 실행합니다. 3. MS-SQL가 설치된 폴더의 "Binn"으로 이동합니다. 4. MS-SQL을 최소 구성으로 실행합니다. sqlservr.exe -f -s DB_NAME 5. Command Prompt를 관리자 모드로 하나 더 실행합니다. 6. MS-SQL가 설치된 폴더의 "Binn"으로 이동합니다. 7. sqlcmd를 실행합니다. sqlcmd -S Login_Name 8. "sysadmin" Role을 부여합니다. EXEC master..sp_addsrvrolemember @loginame=N'Login_Name', @rolename=N'sy.. 2015. 4. 15.
MSSQL - 세션정보 얻기 아래의 쿼리를 실행하여 사용자별 세센정보를 확인 할 수 있습니다. SELECT * FROM sys.dm_exec_sessions 2015. 4. 15.
MSSQL - 개행문자 변경하기 간혹 데이터베이스의 개행문자를 " " 등으로 변경해야 할 경우가 있다. C#이나 Java 코드에서 변경해도 되지만 난 쿼리에서 변경하는 방법을 쓰곤합니다. 아래의 쿼리는 개행문자를 다른 문자로 변환하는 아주 간단한 쿼리입니다. SELECT REPLACE(ColumnName, CHAR(13)+CHAR(10), ' ') FROM TableName 2015. 4. 15.