TSQL을 사용하여 데이터베이스의 모든 테이블 목록을 얻으려면 어떻게해야합니까?
SQL Server의 특정 데이터베이스에있는 모든 테이블의 이름을 가져 오는 가장 좋은 방법은 무엇입니까?
SQL Server 2005, 2008, 2012, 2014, 2016, 2017 또는 2019 :
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
특정 데이터베이스의 테이블 만 표시하려면
SELECT TABLE_NAME
FROM <DATABASE_NAME>.INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
또는,
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND TABLE_CATALOG='dbName' --(for MySql, use: TABLE_SCHEMA='dbName' )
PS : SQL Server 2000의 경우 :
SELECT * FROM sysobjects WHERE xtype='U'
SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'
다음은 검색 할 수있는 다른 개체 유형 목록입니다.
- AF : 집계 함수 (CLR)
- C : CHECK 제약
- D : 기본 또는 DEFAULT 제약
- F : FOREIGN KEY 제약
- L : 로그
- FN : 스칼라 함수
- FS : 어셈블리 (CLR) 스칼라 함수
- FT : 어셈블리 (CLR) 테이블 반환 함수
- IF : 인라인 테이블 함수
- IT : 내부 테이블
- P : 저장 프로 시저
- PC : 어셈블리 (CLR) 저장 프로 시저
- PK : PRIMARY KEY 제약 조건 (유형은 K)
- RF : 복제 필터 저장 프로 시저
- S : 시스템 테이블
- SN : 동의어
- SQ : 서비스 대기열
- TA : 어셈블리 (CLR) DML 트리거
- TF : 테이블 함수
- TR : SQL DML 트리거
- TT : 테이블 유형
- U : 사용자 테이블
- UQ : UNIQUE 제약 (유형은 K)
- V :보기
- X : 확장 저장 프로 시저
SELECT * FROM INFORMATION_SCHEMA.TABLES
또는
SELECT * FROM Sys.Tables
select * from sys.tables;
또는
SELECT * FROM INFORMATION_SCHEMA.TABLES
또는
SELECT * FROM sysobjects WHERE xtype='U'
USE YourDBName
GO
SELECT *
FROM sys.Tables
GO
또는
USE YourDBName
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES
GO
SELECT * FROM information_schema.tables
where TABLE_TYPE = 'BASE TABLE'
SQL 서버 2012
exec sp_msforeachtable 'print ''?'''
SELECT name
FROM sysobjects
WHERE xtype='U'
ORDER BY name;
(SQL Server 2000 표준, SQL Server 2005에서 계속 지원됨)
select * from sysobjects where xtype='U'
SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'
단점은 및 INFORMATION_SCHEMA.TABLES
테이블과 같은 시스템 테이블도 포함되어 있으며 자신의 테이블과 구분할 방법이 없다는 것입니다.dtproperties
MSpeer_...
시스템 테이블 제외를 지원 sys.objects
하는 (더 이상 사용되지 않는 sysobjects 뷰 의 새 버전)을 사용 하는 것이 좋습니다 .
select *
from sys.objects
where type = 'U' -- User tables
and is_ms_shipped = 0 -- Exclude system tables
SSMS에서 특정 데이터베이스 (예 : "MyDatabase")의 모든 정규화 된 테이블 이름을 가져 오려면 :
SELECT [TABLE_CATALOG] + '.' + [TABLE_SCHEMA] + '.' + [TABLE_NAME]
FROM MyDatabase.INFORMATION_SCHEMA.Tables
WHERE [TABLE_TYPE] = 'BASE TABLE' and [TABLE_NAME] <> 'sysdiagrams'
ORDER BY [TABLE_SCHEMA], [TABLE_NAME]
결과 :
- MyDatabase.dbo.MyTable1
- MyDatabase.dbo.MyTable2
- MyDatabase.MySchema.MyTable3
- MyDatabase.MySchema.MyTable4
- 기타
이것을 이용하십시오. 스키마 이름과 함께 테이블 이름을 얻을 수 있습니다.
SELECT SYSSCHEMA.NAME, SYSTABLE.NAME
FROM SYS.tables SYSTABLE
INNER JOIN SYS.SCHEMAS SYSSCHEMA
ON SYSTABLE.SCHEMA_ID = SYSSCHEMA.SCHEMA_ID
먼저 데이터베이스를 선택하기 만하면됩니다.
use database_name;
그런 다음 입력
show tables;
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE'
ORDER BY TABLE_NAME
Thanks to Ray Vega, whose response gives all user tables in a database...
exec sp_msforeachtable 'print ''?'''
sp_helptext shows the underlying query, which summarises to...
select * from dbo.sysobjects o
join sys.all_objects syso on o.id = syso.object_id
where OBJECTPROPERTY(o.id, 'IsUserTable') = 1
and o.category & 2 = 0
Well you can use sys.objects to get all database objects.
GO
select * from sys.objects where type_desc='USER_TABLE' order by name
GO
OR
-- For all tables
select * from INFORMATION_SCHEMA.TABLES
GO
--- For user defined tables
select * from INFORMATION_SCHEMA.TABLES where TABLE_TYPE='BASE TABLE'
GO
--- For Views
select * from INFORMATION_SCHEMA.TABLES where TABLE_TYPE='VIEW'
GO
--for oracle
select tablespace_name, table_name from all_tables;
This link can provide much more information on this topic
Using SELECT * FROM INFORMATION_SCHEMA.COLUMNS
also shows you all tables and related columns.
참고URL : https://stackoverflow.com/questions/175415/how-do-i-get-list-of-all-tables-in-a-database-using-tsql
'your programing' 카테고리의 다른 글
Git에서 이전 커밋에 태그를 지정하는 방법은 무엇입니까? (0) | 2020.09.28 |
---|---|
자바 : 정적 메서드를 사용하는 경우 (0) | 2020.09.28 |
git stash pop과 git stash 적용의 차이점 (0) | 2020.09.28 |
Python Pandas의 기존 DataFrame에 새 열 추가 (0) | 2020.09.28 |
jQuery에서 이벤트 핸들러를 제거하는 가장 좋은 방법은 무엇입니까? (0) | 2020.09.27 |