Database 67

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

연결된 서버 만들기

여러대의 MS SQL을 사용하다보면 서로의 데이터를 사용해야 하는 경우가 발생합니다. 몇가지 방법이 있지만 스케쥴러에서 작업을 하는 경우 로그인을 설정 할 수 있는 연결된 서버를 대부분 사용합니다. 아래는 연결된 서버 및 계정을 사용하는 방법입니다. EXEC master.dbo.sp_addlinkedserver @server = N'TESTDB' -- 연결될 서버의 별칭 , @provider = N'SQLNCLI' -- PROVIDER , @datasrc = N'192.168.0.1' -- 연결될 서버의 IP GO EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TESTDB' -- 위에서 사용한 서버의 별칭 , @useself = N'False' -- FAL..

Database/MS SQL 2011.03.06