Comment trouver colonnes comte de n'importe quelle table dans une base de données à partir de sql server base de données master?
Si je sais que la base de données-nom de la table nom, comment puis-je trouver des colonnes-comte de la table à partir de sql server base de données master?
Quel est le moyen le plus rapide pour trouver les colonnes compter de toute base de données-table?
Que pensez-vous de la performance de cette requête?
select count(*) from SYSCOLUMNS where id=(select id from SYSOBJECTS where name='Categories')
J'ai besoin de soutien sql server 2000 et au-delà.
OriginalL'auteur user366312 | 2009-12-05
Vous devez vous connecter pour publier un commentaire.
Il peut varier légèrement selon la version de SQL Server, mais cela fonctionne pour 2005:
En 2000:
Si vous avez plusieurs tables avec exactement le même nom de table, en vertu de différents propriétaires, alors vous aurez besoin de tenir compte de cela. J'ai oublier le nom de la colonne dans sysobjects à regarder du haut de ma tête.
Mise à JOUR POUR les nouvelles VERSIONS DE SQL Server et de conformité ANSI:
count(*) est exacte, lire l'article de nouveau
votre première requête de SQL Server 2005 ne fonctionne pas, si vous êtes en "maître", et que vous souhaitez vérifier une table à partir d'une autre base de données. Vous avez besoin d'utiliser
OBJECT_ID('<database>.<owner>.<table_name>')
pour des résultats précis...Merci, corrigé.
Ils sont deux choses totalement différentes. La requête dans le lien qui vous a été fourni pour obtenir le total des ligne compte d'une table en utilisant une seule valeur de la colonne dans sysindexes. Que les données peuvent en effet devenir obsolètes et inexactes. Ma requête ne réelle du nombre de lignes directement à l'encontre de la table correspondante, qui, dans ce cas, est un système de table.
OriginalL'auteur Tom H
Vous pourrait (et devrait) faire - essayez d'éviter d'utiliser le sysobjects" voir - il n'est plus pris en charge et peuvent être supprimées dans SQL Server 2008 R2 ou plus tard.
Au lieu de cela, utiliser le "sys" catalogue afficher dans la base de données:
Cela devrait faire l'affaire, et c'est probablement la méthode la plus simple et la plus rapide façon de le faire.
Non, c'est pour SQL Server 2005 et jusqu' - vous de ne pas mentionner SQL Server 2000 dans votre post.......
Désolé pour ça. Mais j'ai besoin d'une requête qui prend en charge sql server 2000 et au-delà.
Cette requête dans SQL Server 2014!
OriginalL'auteur marc_s
Comment sur
OriginalL'auteur Raj
vous pourriez envisager de publier quelque chose comme cela,
OriginalL'auteur Rahul
OriginalL'auteur SameerDhoot
Ou vous pouvez consulter toutes les tables avec leurs colonnes compter
SELECT COUNT(column_name) as "column_count", table_name
FROM INFORMATION_SCHEMA.COLUMNS GROUP BY table_name ORDER BY "column_count" DESC
OriginalL'auteur Marius