使用特定列查找过程列表

时间:2012-08-13 17:43:09

标签: sql-server sql-server-2008

如果我提供列名作为存储过程的输入,我是否应该使用所有数据库中的该列获取过程和表名列表?

1 个答案:

答案 0 :(得分:2)

对于sql-server 2005+,您可以使用:

create procedure sp1
    @columnName varchar(30)
as
    select s1.name,'table' type
    from sys.objects s1 join sys.columns s2 on s1.object_id = s2.object_id
    where s2.name = @columnName  and s1.type = 'U'

    union

    select s1.name,'procedure' type
    from sys.procedures s1 join sys.sql_modules s2 on s1.object_id = s2.object_id
    and s2.definition like '%'+@columnName+'%'
相关问题