블로그 이미지
따시쿵

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2014. 7. 22. 11:45 MSSQL

insert 구문으로 데이타를 텍스트 파일로 저장해서 이동하는 경우나 외부에 데이타를 전달하기 위한 방법으로 다음과 같이 저장하는 경우가 있다.

insert into dbo.calenda_data values(2011,'1','1','신정',2)
insert into dbo.calenda_data values(2011,'1','2','',0)
insert into dbo.calenda_data values(2011,'1','3','',0)

이런 스크립트를 한 번 만들어 두면 유용하게 사용할 수 있어서 정리해 본다.
테이블 정의서는 아래와 같고 




실제 select 구문으로 쿼리되는 결과값은 아래와 같다.



위 데이타를 아래와 같은 스크립트로 이용하면 텍스트 파일에 저장할 수 있는 스크립을 뽑아 낼 수 있다.



select 'insert into dbo.calenda_data values(' + convert(varchar, cd_sy) + ',''' + 

rtrim(cd_sm) + ''',''' + rtrim(cd_sd) + ''',''' + cd_sol_plan + ''',' + 

convert(varchar, holiday) + ')'  

from [GElect].[dbo].[calenda_data_copy2]



posted by 따시쿵
2014. 7. 22. 11:45 MSSQL

6자리 숫자로 된 쿠폰번호 만드는 sql문.

DECLARE @L_S_LIMIT INT,
		@L_E_LIMIT INT,
		@INDEX INT,
		@RND INT
SET @L_S_LIMIT = 100000
SET @L_E_LIMIT = 999999
SET @INDEX = 1

WHILE @INDEX <= 2
BEGIN

	SET @RND = ROUND((@l_E_LIMIT - @l_S_LIMIT + 1) * RAND() + @l_S_LIMIT , 0, 1)
	
	INSERT INTO dbo.tbl_rnd VALUES (@RND)
	
	SET @INDEX = @INDEX + 1
END

결과값은 아래와 같음.....

 

posted by 따시쿵
2014. 7. 22. 11:44 MSSQL

데이타베이스 전체를 암호화해서 이동해서 복원하는 절차를 인터넷에서 찾았는데 여기에 내 스타일(?)에 맞게 다시 정리하여 올림....(자료 정리 차원에서)

/***************************************************************
***                   SOURCE 데이타베이스                    ***
***************************************************************/

-- 1. 마스터 키, 인증서 생성
USE master ;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*****';
GO

CREATE CERTIFICATE TestSQLServerCert2 WITH SUBJECT = 'Certificate to protect TDE key'
GO

---- 인증서 확인
SELECT * FROM sys.certificates

--------------------------------------------------------
-- 2. 인증서 백업
BACKUP CERTIFICATE TestSQLServerCert2 
TO FILE = 'TestSQLServerCert2'
WITH PRIVATE KEY
(
    FILE = 'C:\wmpub\CustRecords\SQLPrivateKeyFile',
   ENCRYPTION BY PASSWORD = 'BITOM8115'
);
GO

--------------------------------------------------------
-- 3. 데이타베이스 생성
CREATE DATABASE CustRecords2 ;
GO

--------------------------------------------------------

-- 4. 데이타베이스에 암호화 적용
USE CustRecords2;
GO

CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE TestSQLServerCert2;
GO

ALTER DATABASE CustRecords2
SET ENCRYPTION ON;
GO

--------------------------------------------------------
-- 5. 데이타베이스에 데이타 입력
CREATE TABLE CustomerRecord  (CustomerID int PRIMARY KEY, SecretData nvarchar(100) NOT NULL) ;
GO

INSERT CustomerRecord (CustomerID,SecretData)
VALUES (23997, 'Plain text data') ;
GO

SELECT CustomerID, SecretData FROM CustomerRecord ;
GO

--------------------------------------------------------
-- 6. 데이타베이스 분리
USE master ;
GO

EXEC master.dbo.sp_detach_db @dbname = N'CustRecords2';
GO

--------------------------------------------------------
-- 7. 마스터키와 인증서 삭제
USE master
GO

DROP CERTIFICATE TestSQLServerCert2;
DROP MASTER KEY;


/*******************************************************************
***                     TARGET 데이타베이스                      ***
*******************************************************************/

-- 1. 마스터키 생성
USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '********';
GO

---- 인증서 확인
SELECT * FROM sys.certificates

--------------------------------------------------------
--2. 인증서 복원
CREATE CERTIFICATE TestSQLServerCert2
FROM FILE = 'TestSQLServerCert2'
WITH PRIVATE KEY
(
FILE = 'C:\wmpub\CustRecords\SQLPrivateKeyFile',
DECRYPTION BY PASSWORD = 'Certificate to protect TDE key'
);
GO

--------------------------------------------------------
--3. 데이타베이스 복원
CREATE DATABASE [CustRecords2] ON
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\CustRecords2.mdf' ),
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\CustRecords2_log.LDF' )
FOR ATTACH ;
GO

--------------------------------------------------------
--4. 데이타베이스 테스트
USE CustRecords2 ;
GO

SELECT CustomerID, SecretData FROM CustomerRecord ;
GO


출처 : http://msdn.microsoft.com/ko-kr/library/ff773063.aspx#create

posted by 따시쿵