728x90

SQL 서버 데이터베이스 내에 존재하는 시스템 테이블 'sysindexes'에는 'rows'란 컬럼이 존재합니다.

이 컬럼은 테이블에 반영된 행들의 수를 갖고 있습니다.

다음 SQL문을 실행시키면 원하는 결과를 효과적으로 얻을 수 있을 것입니다.

 

select o.name, rows

    from sysobjects o inner join sysindexes i on o.id = i.id

    where i.indid < 2

    order by o.name

 

where 절의 "indid<2" 부분은 클러스터드 인덱스(clustered index) 또는 힙(heap) 정보를 찾지 않기 위해서 입니다.

이 결과는 실제로 트랜잭션(transaction)이 일어난 행만 카운트 합니다.

출처 : http://www.devpia.co.kr/Maeul/Contents/Detail.aspx?BoardID=42&MAEULNO=17&no=101&page=1
728x90
SELECT a.[name] as '테이블 이름',
b.[name] as '열 이름',
b.[length] as '데이터 길이',
c.[name] as '데이터 형식',
isnull(d.[value],'') as'설명'
FROM
sysobjects a
INNER JOIN
syscolumns b
ON a.id = b.id
INNER JOIN
systypes c
ON b.xusertype = c.xusertype
LEFT OUTER JOIN
sys.extended_properties d
ON b.id = d.major_id and b.colid = d.minor_id
WHERE a.[name] = 'Table_name' -- 테이블 이름
728x90

mssql 2000
자체적으로 md5를 지원하는 함수가 없다.
그래서 지원하는 dll 화일을 등록한다던지의 방법을 사용해야 한다.
http://www.codeproject.com/KB/database/xp_md5.aspx
에서 관련 dll 화일을 회원가입후 받아볼수가 있다.

등록은 C:\Program Files\Microsoft SQL Server\MSSQL\Binn 과 같은 MSSQL 실행화일 디렉토리에
다운로드한 xp_md5.dll 를 복사한후 아래의 문장을 실행하자

USE master;
EXEC sp_addextendedproc 'xp_md5', 'xp_md5.dll'

그후 사용자 함수로 사용하기 위해
사용할 DB에 아래의 함수를 추가 한다.
CREATE FUNCTION [dbo].[fn_md5] (@data TEXT)
RETURNS CHAR(32) AS
BEGIN
DECLARE @hash CHAR(32)
EXEC master.dbo.xp_md5 @data, -1, @hash OUTPUT
RETURN @hash
END



mssql 2005
자체적으로 md5를 지원한다. 다만 일반적인 프로그래밍에서의 md5 변환값과 동일하게 맞춰주기 위해
소문자처리등의 추가 변환이 필요하다
SubString(master.dbo.fn_varbintohexstr(HashBytes('MD5', 필드명 또는 문자열)), 3, 32)
만약 위에서 언급한 함수를 등록해서 사용하려면 2000과 똑같은 과정을 거치서 스칼라 함수로 등록하면된다.

출처 : http://www.devpia.co.kr/Maeul/Contents/Detail.aspx?BoardID=42&MAEULNO=17&no=104&page=1

+ Recent posts