2011-06-03 1 views

Répondre

6

Essayez ceci:

SELECT a.name -- OR a.* 
    FROM syscolumns a INNER JOIN systypes b 
    ON a.xtype = b.xtype 
    AND b.name = 'ntext' -- OR OTHER DATA TYPE. 
+0

Ceci est parfait pour ce que j'ai besoin de trouver, sauf que j'ai besoin de connaître la table dans laquelle la colonne a été trouvée. Comment puis-je modifier cela pour inclure le nom de la table? – HPWD

+1

Je ne sais pas si c'est la meilleure façon, mais cela a fonctionné parfaitement pour moi. 'SELECT a.name, o.name AS TableName, o.type, a.id, o.object_id, o.schema_id DE SYS.SYSCOLUMNS EN TANT INNER JOIN sys.systypes AS BMARCHE a.xtype = b.xtype ET b.name = 'char' ET a.length = 6 jointure sys.objects AS o ON a.id = o.object_id WHERE (o.type = 'u') et (o.schema_id = 1) ' – HPWD

+0

Pour les nouveaux arrivants. Le commentaire de @dlackey peut ne pas fonctionner pour vous. C'est à cause de la contrainte de longueur redudante. Utilisez ceci: SELECT 'a.name, o.name AS TableName, o.type, a.id, o.object_id, o.schema_id, a.length DE SYS.SYSCOLUMNS EN TANT INNER JOIN sys.systypes AS b ON a.xtype = b.xtype ET b.name = 'YOUR_DATA_TYPE' INNER JOIN sys.objects AS o = ON a.id o.object_id OU (o.type = 'u') ET (o. schema_id = 1) ' – duleshi

2

Essayez cette

SELECT o.name AS 'Table Name', c.name AS 'Column Name' FROM sysobjects AS o 
INNER JOIN syscolumns AS c ON o.name = c.object_id 
INNER JOIN systypes AS t ON t.xtype = c.xtype 
WHERE b.name = ' ntext' 

Hope this helps.

+0

Impossible de trouver ces erreurs avec b.name car il n'y a pas d'alias pour b – kevchadders

1
SELECT so.name, sc.name 
    FROM sys.objects so 
    JOIN sys.columns sc ON so.object_id = sc.object_id 
    JOIN sys.types stp ON sc.user_type_id = stp.user_type_id 
        AND stp.name = 'ntext' 
WHERE so.type = 'U' -- to show only user tables 
1

Je sais que cette question a déjà reçu une réponse mais je voulais ajouter le nom de la table à l'ensemble de résultats et cette requête fait cela.

SELECT a.name, o.name AS TableName, o.type, a.id, o.object_id, o.schema_id 
FROM sys.syscolumns AS a INNER JOIN sys.systypes AS b ON a.xtype = b.xtype 
AND b.name = 'char' 
AND a.length = 6 INNER JOIN 
sys.objects AS o ON a.id = o.object_id 
WHERE (o.type = 'u') 
AND (o.schema_id = 1) 
Questions connexes