J'ai un nom de champ utilisé dans une base de données SQL Server - Je ne sais pas s'il s'agit d'un champ de table ou d'un paramètre de procédure stockée. Existe-t-il une requête que je peux exécuter sur la base de données pour trouver les champs candidats dans les tables et les procédures stockées?J'ai un nom de champ utilisé dans une base de données SQL Server - comment puis-je trouver où il est utilisé?
1
A
Répondre
4
dépend de la version du serveur SQL que vous utilisez:
Pour 2000, l'utilisation syscolumns:
select object_name(select object_name(id)
from syscolumns
where name = 'ID'
Pour 2005+ utilisation sys.columns :
select object_name(object_id)
from sys.columns
where name = 'ID'
Le La fonction object_name()
annule la nécessité d'une jointure interne sur la table des objets.
1
Oui, vous pouvez:
select o.type, o.name from sys.columns c
join sys.objects o on c.object_id = o.object_id
where c.name = @col_to_find
3
S'il s'agit de SQL Server 2005 ou 2008, vous pouvez utiliser les vues INFORMATION_SCHEMA.
http://msdn.microsoft.com/en-us/library/ms186778.aspx
instruction SQL comme cela trouver ce que vous cherchez:
select * from information_schema.parameters where parameter_name like '%field%'
select * from information_schema.columns where column_name like '%field%'
1
Ou vous pouvez installer le Red Gate Search add-in gratuitement.
Merci - Je vais y aller maintenant ... – Ben