Database/MS SQL 42

특정 문자로 구분되는 데이터 분리 Query (split)

특정 문자로 구분되는 데이터 분리 Query DECLARE @p VARCHAR(MAX) SET @p = '0001,0003,0005' IF @p IS NOT NULL OR @p != '' BEGIN IF RIGHT(@p, 1) = @delimiter BEGIN SET @p = LEFT(@p, LEN(@p) - 1) END END SELECT CONVERT(VARCHAR(10), Y.item.query('text()')) AS val FROM ( SELECT CONVERT(xml, '' + replace(@p, ',', '') + '') AS xitem ) X CROSS APPLY X.xitem.nodes('/r') AS Y(item) The table is example is: TableName: Num..

Database/MS SQL 2012.02.06

sp_who2 LastBatch 문자열 오류 수정

Sp_who2의 결과를 보면 LastBatch가 잘못 출력되는 것을 볼 수 있다. 수정 방법은 select spid ,status ,sid ,hostname ,program_name ,cmd ,cpu ,physical_io ,blocked ,dbid ,convert(sysname, rtrim(loginame)) as loginname ,spid as 'spid_sort' , substring( convert(varchar,last_batch,111) ,6 ,5 ) + ' ' -- + substring( convert(varchar,last_batch,113) ,13 ,8 ) + substring( convert(varchar,last_batch,113) ,12 ,8 ) as 'last_batch_char..

Database/MS SQL 2012.02.05

sp_MSforeachdb 와 sp_MSforeachtable

SQL Server 운영을 하다 보면 데이터베이스 전체 또는 테이블 전체에 뭔가 작업을 할 일들이 생긴다. 그래서 만들어 놓은 것인지 MS에서 제공하는 프로시져가 있다. sp_MSforeachdb와 sp_MSforeachtable 이다. ? 를 각 데이터베이스나 테이블 이름으로 인식을 한다. Foreach와 같이 테이블 처음부터 끝까지 루프하게 된다. 간단한 예제는 EXEC sp_MSforeachdb 'PRINT '' ? '' ' GO master tempdb model msdb ReportServer ReportServerTempDB test SHOPERP AdventureWorks2008R2 AdventureWorksDW2008R2 AdventureWorksLT2008R2 AdventureWorks ..

Database/MS SQL 2011.09.28

로그인과 단절된 User 찾기

MS SQL을 사용하다보면 로그인과 사용자가 분리되는 일들이 있다. (특히 복원시에 이런 문제가 자주 발생한다.) 아래는 로그인과 단절된 User를 찾는 프로시져이다. USE master GO CREATE DATABASE test GO -- Login 생성 CREATE LOGIN [sql_User] WITH PASSWORD=N'test123' GO USE [test] GO -- User 생성 CREATE USER [sql_User] FOR LOGIN [sql_User] WITH DEFAULT_SCHEMA=[dbo] GO DROP LOGIN [sql_User] GO -- 단절된 User 찾기 EXEC sp_change_users_login @Action='Report' GO

Database/MS SQL 2011.09.26

Hyper-V 네트워크 구성

VM Ware 만 사용하다 이번에 Hyper-V를 사용하기로 결정 했다. VM ware를 NAT 설정이 정말 쉽다. 하지만 이놈의 Hyper-V는 어렵다. :-( 구성안의 내용은 모든 가상 서버는 인터넷에 접속되어야 하고 노트북과 Hyper-V 서버(host)에 접속되어야 한다. (물론 들어 오는 포트에 대해서는 설정 했을 경우에만 가능) 첫번째로 구성해야 할 것이 Hyper-V의 가상 네트워크 관리자이다. 가상 네트워크 관리자에서 만들 수 있는 네트워크는 3종류(외부,내부,개인)가 있는데 자세한 사항은 도움말을… 우선 외부를 만든다. 두번째로 가상서버에서 사용할 내부를 만든다.(2개 이상을 만들자) 그 후 네트워크 연결을 보면 추가한 외부, 내부(2개 이상)이 보일 것이다. 내부로 되어 있는 네트워크 ..

Database/MS SQL 2011.09.25

equal to 작업에서의 데이터 정렬 충돌을 해결할 수 없습니다.

MS SQL에서 테이블의 컬럼 중 char, varchar, text, nchar, nvarchar 및 ntext은 collation을 설정 할 수 있다. MSDN의 설명을 보면 열에 대한 데이터 정렬을 지정합니다. 데이터 정렬 이름은 Windows 데이터 정렬 이름이나 SQL 데이터 정렬 이름이 될 수 있습니다. 이렇게 정의 되어 있습니다. 말 그대로 데이터를 정렬할 때 기준을 설정해 주는 것입니다. 그런데 문제는 이것이 설정상 변경 될 수 있는 것입니다. CREATE TABLE tt_1 ( id INT , name VARCHAR(10) COLLATE Korean_Wansung_CI_AS ) GO CREATE TABLE tt_2 ( id INT , name VARCHAR(10) COLLATE Korea..

Database/MS SQL 2011.09.24