sql server - texto - Para obtener el número total de columnas en una tabla en sql
len sql server ejemplos (9)
Necesito una consulta en SQL para obtener el total de columnas en una tabla. ¿Puede alguien ayudar?
Corrección a la consulta superior anterior, para permitir ejecutar desde cualquier base de datos
SELECT COUNT(COLUMN_NAME) FROM [*database*].INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_CATALOG = ''database'' AND TABLE_SCHEMA = ''dbo''
AND TABLE_NAME = ''table''
En MS-SQL Server 7+:
SELECT count(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ''mytable''
En mi situación, comparaba el recuento de columnas de esquema de tabla para 2 tablas idénticas en 2 bases de datos; Una es la base de datos principal y la otra es la base de datos de archivo. Hice esto (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;
Lo importante a tener en cuenta aquí es calificar el nombre de la base de datos antes de INFORMATION_SCHEMA
(que es un esquema, como dbo
). Esto permitirá que el código se rompa, en caso de que las columnas se agregaran a la base de datos principal y no a la base de datos de archivo, en la cual si se permitiera que se ejecutara el procedimiento, casi con seguridad se produciría una pérdida de datos.
Esta consulta obtiene el nombre de las columnas.
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = ''YourTableName''
Y este consigue el conde.
SELECT Count(*) FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = ''YourTableName''
La siguiente consulta mostrará todas las tablas y el recuento de columnas correspondiente en un esquema de base de datos
SELECT Table_Name, count(*) as [No.of Columns]
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = ''dbo'' -- schema name
group by table_name
Puedes probar debajo de la consulta:
select
count(*)
from
all_tab_columns
where
table_name = ''your_table''
Se puede hacer usando:
SELECT COUNT(COLUMN_NAME) ''NO OF COLUMN'' FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ''Address''
SELECT COUNT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = ''database'' AND TABLE_SCHEMA = ''dbo''
AND TABLE_NAME = ''table''
Select Table_Name, Count(*) As ColumnCount
From Information_Schema.Columns
Group By Table_Name
Order By Table_Name
Este código muestra una lista de tablas con una cantidad de columnas presentes en esa tabla para una base de datos.
Si desea saber el número de columnas para una tabla en particular en una base de datos, simplemente use la cláusula where
por ejemplo, where Table_Name=''name_your_table''