DB내 모든 테이블의 상세 정보 출력
작성일 06-11-02 14:52
페이지 정보
작성자서방님 조회 122회 댓글 0건본문
출처 : http://www.swynk.com
내용 : 정말로 가려운데를 슥슥 긁어주는...
DB내의 모든 테이블 컬럼들의 상세 정보를 보여주는 쿼리 입니다..
컬럼의 자료형, 타입, 길이, 등등등..
sp_tables와 sp_columns를 동시에 돌린 결과라고 쉽게 생각 하심 되실 겁니다.
아주 유용하게 사용 하실 겁니다.. T.T
정말 이런 유용한 쿼리를 보면.. 저역시 맹글고 시퍼 지는군요..
이런 상큼한 쿼리를요.. ^_^
그럼 이만..
if exists (select * from sysobjects where id = object_id(N'[dbo].[conv_tables_fields]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[conv_tables_fields]
GO
CREATE TABLE [dbo].[conv_tables_fields] (
[TABLE_QUALIFIER] [nvarchar] (128) NULL ,
[TABLE_OWNER] [nvarchar] (128) NULL ,
[TABLE_NAME] [nvarchar] (128) NULL ,
[COLUMN_NAME] [nvarchar] (128) NULL ,
[DATA_TYPE] [smallint] NULL ,
[TYPE_NAME] [nvarchar] (128) NULL ,
[PRECISION] [int] NULL ,
[LENGTH] [int] NULL ,
[SCALE] [smallint] NULL ,
[RADIX] [smallint] NULL ,
[NULLABLE] [smallint] NULL ,
[REMARKS] [varchar] (254) NULL ,
[COLUMN_DEF] [nvarchar] (400) NULL ,
[SQL_DATA_TYPE] [smallint] NULL ,
[SQL_DATETIME_SUB] [smallint] NULL ,
[CHAR_OCTET_LENGTH] [int] NULL ,
[ORDINAL_POSITION] [int] NULL ,
[IS_NULLABLE] [varchar] (254) NULL ,
[SS_DATA_TYPE] [tinyint] NULL
) ON [PRIMARY]
GO
DECLARE @name nvarchar(384)
DECLARE @Dfile_header nvarchar(384)
DECLARE name_cursor CURSOR FOR Select name from sysobjects
where type = 'u'
order by name
OPEN name_cursor
FETCH NEXT FROM name_cursor INTO @name
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
PRINT ' '
SELECT @dfile_header = RTRIM(@name)
PRINT @dfile_header
PRINT ' Trans Begin'
Begin transaction
insert conv_tables_fields
exec sp_columns @dfile_header
commit transaction
PRINT ' Trans End'
END
FETCH NEXT FROM name_cursor INTO @name
END
PRINT ' '
PRINT ' '
SELECT @dfile_header = '************* NO MORE TABLES'
+ ' *************'
PRINT @dfile_header
PRINT ' '
PRINT 'Shown All Files.'
DEALLOCATE name_cursor
go
-- 사용법
select * from conv_tables_fields
댓글목록
등록된 댓글이 없습니다.