728x90



방법 1)
SELECT DISTINCT name
FROM dbo.sysobjects so
        , dbo.syscomments sc
WHERE so.id=sc.id
-- AND type = 'P' -- 타입은 프로시져, 뷰, 함수등 구분(P : 프로시져, V : 뷰, FN : 함수)

AND so.name LIKE 'SIS%' -- 찾으려는 범위 프로시져
AND sc.text LIKE '%Jumin%'  -- 찾으려는 컬럼



방법 2)
SELECT DISTINCT(OBJECT_NAME(id)) as spnm2
FROM syscomments
WHERE OBJECT_NAME(id) like 'SIS%' -- 찾으려는 범위 프로시져
AND text like '%Jumin%' -- 찾으려는 컬럼



728x90
728x90




서버개체 - 연결된 서버 - 새 연결된 서버를 선택한다.


새 연결된 서버를 선택하면 위와 같은 화면이 보인다.
일반에서 연결된 서버는 서버 이름을 지어주는 것이다. 추후 생성된 후 연결된서버에 보이는 이름이 된다.
제품이름, 데이터원본(연결디비주소)를 입력하고 카탈로그에는 연결데이터베이스명을 입력한다.




보안탭을 선택하면 위와 같은 화면이 보인다.
'다음 보안 컨텍스트를 사용하여 연결'을 선택하고 연결하는 디비의 로그인 아이디와 패스워드를 입력하면 된다.

확인을 누르면 원하는 DB에 서버가 연결된다.


728x90
728x90





dtswizard를 이용해서 엑셀 데이터 업로드 하는 중에 떨어진 에러이다.

오류 내용을 찾아보니 결론은 서비스팩 미설치로 인한 문제로 판명.

지금 서비스팩을 다운 받고 있어서, 해결 되는지는 일단 서비스팩 설치 후에 확인 가능할듯 하다.



SQL Server 2005서비스 팩 1
http://www.microsoft.com/downloads/details.aspx?familyid=CB6C71EA-D649-47FF-9176-E7CAC58FD4BC&displaylang=ko


SQL Server 2005서비스 팩 2
http://www.microsoft.com/downloads/details.aspx?familyid=D07219B2-1E23-49C8-8F0C-63FA18F26D3A&displaylang=ko



서비스 팩 1만 설치하면 안 되고, 서비스 팩 2까지 설치 하니깐 된다. ㅎㅎ

728x90
728x90


Ms-Sql의 컬럼을 암호화하기 위한 내장함수가 있다.

-PwdEncrypt : 컬럼의 데이터를 암호화한다. ex. PwdEncrypt('암호화할 데이터')
-PwdCompare : 암호화한 데이터를 비교해서 확인한다. ex. PwdCompare('데이터', 암호화컬럼)

간단 예제

create table TEST (
--password varchar(100) varbinary(500)
password varbinary(500) -- varbinary 타입으로 하자

);

테이블을 만든 후

insert into TEST values (PwdEncrypt('1111'));

데이터를 암호화하여 넣은 후 select해보자

select PwdCompare('1111', password) from TEST
결과 : 1

select PwdCompare('2222', password) from TEST
결과 : 0

PwdCompare의 결과는 1이나 0으로 리턴된다. 1이면 맞는거고 0이면 틀린것이다.
 

 MySQL 에서는 password()

 

1. PwdEncrypt - 암호화

PwdEncrypt('암호화문자')

ex) INSERT INTO members(user_id, password) VALUES('myid', PwdEncrypt('mypwd'))

 

2. PwdCompare - 비교

PwdCompare('비교대상문자', '암호화 된 문자')
->양쪽이 같으면 1을 리턴 다르면 0 리턴, 둘중하나가 NULL 이면 NULL 을 리턴

ex) SELECT PwdCompare('1234', password) FROM members WHERE user_id = 'myid'

728x90
728x90



아래 생성한 컬럼을 테이블 정의서 만들때 사용한다.

해당 내역을 조회해 오는 쿼리

프로시저로 생성해서 사용해도 된다.



   SELECT  DISTINCT A.ORDINAL_POSITION  AS SEQ 
      , A.TABLE_CATALOG    AS DB 
      , A.TABLE_SCHEMA    AS USERID 
      , A.TABLE_NAME     AS T_NM 
      , ''       AS T_KOR_NM
      , A.COLUMN_NAME    AS C_NM 
      , (SELECT  [Description] = ex.value 
       FROM  sys.columns c 
       LEFT OUTER JOIN  sys.extended_properties ex ON  (ex.major_id = c.object_id
                       AND ex.minor_id = c.column_id 
                       AND ex.name = 'MS_Description')
       WHERE  OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0 
       AND OBJECT_NAME(c.object_id) = A.TABLE_NAME
       AND c.name = A.COLUMN_NAME) AS C_NM_KR  --> 2005이후 컬러명 조회 추후 테이블 깔끔하게 정리필요.
      , A.DATA_TYPE + CASE A.DATA_TYPE  
       WHEN 'varchar' THEN  ' ('+LTRIM(STR(CHARACTER_MAXIMUM_LENGTH))+')'    
       WHEN 'int' THEN  ' ('+LTRIM(STR(numeric_precision))+')'    
       WHEN 'numeric' THEN  ' ('+LTRIM(STR(numeric_precision))+'.'+LTRIM(STR(NUMERIC_SCALE))+')'   
       WHEN 'decimal' THEN  ' ('+LTRIM(STR(numeric_precision))+'.'+LTRIM(STR(NUMERIC_SCALE))+')'    
       WHEN 'datetime' THEN  '' 
       WHEN 'image'    THEN ''  
            WHEN 'char' THEN  ' ('+LTRIM(STR(CHARACTER_MAXIMUM_LENGTH))+')'  
       END                               AS TYPE 
      , '' AS '사용여부'
      , ISNULL((SELECT 'PK'  
       FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE  
       WHERE COLUMN_NAME = A.COLUMN_NAME  
      AND TABLE_NAME = A.TABLE_NAME
      ), '')   AS C_KEY 
      , CASE A.IS_NULLABLE 
       WHEN 'NO' THEN 'NN' 
       WHEN 'YES' THEN '' 
      END     AS NN 
      , ISNULL(A.COLUMN_DEFAULT, '')  AS DFT 
      , ', ' + '@' + A.COLUMN_NAME + ' ' + A.DATA_TYPE + CASE A.DATA_TYPE WHEN 'varchar' THEN  '('+LTRIM(STR(CHARACTER_MAXIMUM_LENGTH))+')'
                           WHEN 'int' THEN  '('+LTRIM(STR(numeric_precision))+')'    
                           WHEN 'numeric' THEN  '('+LTRIM(STR(numeric_precision))+'.'+LTRIM(STR(NUMERIC_SCALE))+')'   
                           WHEN 'decimal' THEN  '('+LTRIM(STR(numeric_precision))+'.'+LTRIM(STR(NUMERIC_SCALE))+')'    
                           WHEN 'datetime' THEN  '' 
                           WHEN 'image'    THEN ''  
                                WHEN 'char' THEN  '('+LTRIM(STR(CHARACTER_MAXIMUM_LENGTH))+')'  
                           END AS ARG
      , ', ' + A.COLUMN_NAME   AS C_NM2
      , ', @' + A.COLUMN_NAME   AS C_NM3

    from information_schema.COLUMNS A , INFORMATION_SCHEMA.KEY_COLUMN_USAGE B 
    WHERE A.TABLE_NAME = '조회할테이블명'
    AND A.TABLE_NAME = B.TABLE_NAME 
    ORDER BY A.ORDINAL_POSITION 


728x90

+ Recent posts