88 votes

Trouver toutes les colonnes d'un certain type dans toutes les tables d'une base de données SQL Server

Comment puis-je trouver toutes les colonnes d'un certain type (par exemple NTEXT ) dans toutes les tables d'une base de données SQL Server ?

Je cherche une requête SQL.

127voto

rs. Points 11670

Vous pouvez utiliser la requête suivante pour retourner les champs

SELECT table_name [Table Name], column_name [Column Name]
FROM information_schema.columns where data_type = 'NTEXT'

14voto

Jim H. Points 3755

Vous allez avoir besoin de INFORMATION_SCHEMA. Essayez quelque chose comme :

SELECT c.* from INFORMATION_SCHEMA.columns c
INNER JOIN INFORMATION_SCHEMA.tables t ON t.table_name = c.table_name
WHERE c.data_type = 'int' AND t.table_type = 'base table'

7voto

Seven Points 21

Vous pouvez également essayer

SELECT OBJECT_NAME(c.OBJECT_ID) TableName, c.name ColumnName
FROM sys.columns AS c
JOIN sys.types AS t ON c.user_type_id=t.user_type_id
WHERE t.name = 'ntext'
ORDER BY c.OBJECT_ID;
GO

3voto

SwissCoder Points 514

J'ai utilisé la déclaration suivante pour trouver toutes les tables qui pourraient contenir des données/fichiers binaires.

SELECT 
    table_name 
FROM 
    INFORMATION_SCHEMA.TABLES T 
WHERE 
    T.TABLE_CATALOG = 'MyDatabase' AND 
    EXISTS ( 
        SELECT * 
        FROM INFORMATION_SCHEMA.COLUMNS C 
        WHERE 
            C.TABLE_CATALOG = T.TABLE_CATALOG AND 
            C.TABLE_SCHEMA = T.TABLE_SCHEMA AND 
            C.TABLE_NAME = T.TABLE_NAME AND 
            ( C.DATA_TYPE  = 'binary' OR
             C.DATA_TYPE  = 'varbinary' OR 
            C.DATA_TYPE  = 'text' OR
            C.DATA_TYPE  = 'ntext' OR
            C.DATA_TYPE  = 'image' )
            )

2voto

Colin Points 701

Vous pouvez utiliser la vue système INFORMATION_SCHEMA.COLUMNS . Le site data_type La colonne a ce que vous cherchez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X