programing

표의 총 열 수를 sql로 가져오는 방법

muds 2023. 6. 20. 21:53
반응형

표의 총 열 수를 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

반응형