我在SQL Server数据库中使用了一个字段名称 - 我不知道它是一个表字段还是一个存储过程参数。是否存在可以针对数据库运行的查询以在表和存储过程中查找候选字段?
答案 0 :(得分:5)
取决于您使用的是哪个版本的sql server:
2000年,使用syscolumns:
select object_name(select object_name(id)
from syscolumns
where name = 'ID'
2005年以上使用sys.columns:
select object_name(object_id)
from sys.columns
where name = 'ID'
object_name()
函数的使用否定了对象表上内连接的需要。
答案 1 :(得分:3)
如果是SQL Server 2005或2008,您可以使用INFORMATION_SCHEMA视图。
http://msdn.microsoft.com/en-us/library/ms186778.aspx
像这样的SQL语句将找到你要找的东西:select * from information_schema.parameters where parameter_name like '%field%'
select * from information_schema.columns where column_name like '%field%'
答案 2 :(得分:1)
是的,你可以:
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 :(得分:1)
或者您可以安装免费的Red Gate Search add-in。