표의 총 열 수를 sql로 가져오는 방법
테이블의 총 열을 가져오려면 sql에 쿼리가 필요합니다.누가 도와줄 수 있습니까?
SELECT COUNT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table'
이 쿼리는 열 이름을 가져옵니다.
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'YourTableName'
그리고 이 사람이 카운트를 받습니다.
SELECT Count(*) FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'YourTableName'
MS-SQL Server 7+의 경우:
SELECT count(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'mytable'
아래 쿼리는 데이터베이스 스키마의 모든 테이블과 해당 열 개수를 표시합니다.
SELECT Table_Name, count(*) as [No.of Columns]
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'dbo' -- schema name
group by table_name
Select Table_Name, Count(*) As ColumnCount
From Information_Schema.Columns
Group By Table_Name
Order By Table_Name
이 코드는 데이터베이스에 대해 해당 테이블에 있는 열 수가 있는 테이블 목록을 표시합니다.
데이터베이스의 특정 테이블에 대한 열 수를 알고 싶다면 다음을 사용합니다.where
예를 들어 절 where Table_Name='name_your_table'
아래 쿼리를 시도할 수 있습니다.
select
count(*)
from
all_tab_columns
where
table_name = 'your_table'
다음을 사용하여 수행할 수 있습니다.
SELECT COUNT(COLUMN_NAME) 'NO OF COLUMN' FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Address'
특정 표에서 열을 카운트하는 가장 빠른 방법 중 하나는 다음과 같습니다.max_column_id_used
의 칼럼.sys.tables
해당 테이블의 경우:
USE your_db
SELECT name, max_column_id_used [columns_count]
FROM sys.tables
WHERE name IN ('your_table')
이렇게 하면 집계/COUNT() 기능도 사용할 수 있으므로 특히 많은 테이블에서 실행해야 하는 경우 성능이 향상됩니다.
HTH
데이터베이스에서 실행할 수 있도록 위의 상위 쿼리 수정
SELECT COUNT(COLUMN_NAME) FROM [*database*].INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table'
제 상황에서, 저는 2개의 데이터베이스에 있는 2개의 동일한 테이블에 대한 테이블 스키마 열 수를 비교하고 있었습니다. 하나는 기본 데이터베이스이고 다른 하나는 보관 데이터베이스입니다.이 작업을 수행했습니다(SQL 2012+).
DECLARE @colCount1 INT;
DECLARE @colCount2 INT;
SELECT @colCount1 = COUNT(COLUMN_NAME) FROM MainDB.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'SomeTable';
SELECT @colCount2 = COUNT(COLUMN_NAME) FROM ArchiveDB.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'SomeTable';
IF (@colCount1 != @colCount2) THROW 5000, 'Number of columns in both tables are not equal. The archive schema may need to be updated.', 16;
여기서 주목해야 할 중요한 것은 이전에 데이터베이스 이름을 확인하는 것입니다.INFORMATION_SCHEMA
(이것은 스키마입니다, 마치.dbo
이렇게 하면 열이 보관 데이터베이스가 아닌 기본 데이터베이스에 추가된 경우 코드가 손상될 수 있습니다. 이 경우 절차 실행이 허용되면 데이터 손실이 거의 확실하게 발생합니다.
SQL 테이블의 모든 열 목록을 가져오려면 다음과 같이 하십시오.
select column_name from information_schema.columns where table_name=[dbo].[your_table_name]
SQL 테이블의 열 수 목록을 가져오는 방법
select count(column_name) from information_schema.columns where table_name=[dbo].[your_table_name]
테이블의 총 열 수를 가져옵니다.
SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name';
select count(1) from information_schema.columns where table_name = 'yourtablename'
언급URL : https://stackoverflow.com/questions/1464991/to-get-total-number-of-columns-in-a-table-in-sql
'programing' 카테고리의 다른 글
캐시를 비우고 모든 대상 Xcode 4 이상을 정리하는 방법 (0) | 2023.06.20 |
---|---|
mongodb: 집계 명령의 실행 시간을 어떻게 볼 수 있습니까? (0) | 2023.06.20 |
양식 데이터를 JSON으로 직렬화 (0) | 2023.06.20 |
Python 사전에서 URL 매개 변수 (0) | 2023.06.20 |
Excel에서 SQL Server로 데이터 가져오기 중 일부 데이터 가져오기 실패 (0) | 2023.06.20 |