Est-il possible d'interroger les tables système pour trouver toutes les colonnes dans une base de données qui a un certain type de données.SQL Server 2005 trouver toutes les colonnes dans la base de données pour un certain type de données
Par exemple, si je avais besoin de connaître le nom de la table et la colonne où le type de données = ntext
Est-il possible de le faire?
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
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
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